1:重写的两同两小一大原则
两同:方法名相同、参数列表相同
两小:返回值类型为基本类型时,子类方法的返回值必须和父类相同
返回值为引用类型时:子类方法的返回类型必须小于父类
子类方法的抛出异常必须小于或者等于父类
一大:子类方法的访问权限必须大于或等于父类
2:重写重载的区别
重载和重写都是Java多态性的体现;
Overload:
重载是处于同一个类当中的、方法名相同、参数列表(类型,个数,顺序)不同,重载和返回类型无关
Override:
重写是子类将父类的方法进行重写,以适应要求更高的功能,原则遵从两同两小一大原则
3:抽象类和接口的区别
接口是公开的,不公开则没有意义。接口中不能定义私有方法或者成员变量,也不能实现方法。继承或者实现接口的类必须重写接口中所有的方法,接口可以实现多重继承
抽象类可以设置权限限制,不一定非要公开。抽象类除了可以定义抽象方法外还可以定义成员变量和普通方法或私有方法。另外抽象类不能多重继承,它只有一个超类,不过和其他普通类一样可以继承多个接口。
4:值传递和引用传递
Java当中只存在值传递的概念,没有引用传递。之所以称为引用传递,是因为当我们在堆区new一个对象的时候,将它的引用存在栈区,通过操作引用来间接的操作对象。而当我们将这个引用作为参数时,实际是将地址复制一份作为参数传了进来,它同样还是指向对象的,所以对这个引用所做的操作同样会改变对象的属性。
基本数据类型存在栈区,作为参数时将其复制后传进方法中,对它进行处理和改变不会影响其原来的初始值。