父类类型指向子类引用。
多态使用最多的时候在接口。
一、方法重写(方法重写是实现多态的基础)
为什么采用方法重写,而不是新写一个方法,在这个新方法里面调用父类的方法?这两种做法的方法体是一样的。
答:采用方法重写时,当调用方法时,系统会先在子类里面寻找相应的方法,如果没有,才会去父类里面找相应的方法。如果写一个新方法当然也可以,从功能上来说也没有任何问题,但是需要新写一个方法。从代码的简洁度、命名等角度来说不太好,所以采用重写。 其实就是因为多命名一个方法麻烦,如无必要,勿增实体。
注:如果在方法重写中没有调用父类的对应方法,则系统不会执行父类对应的方法。
重写要求:
1、重写方法必须与被重写方法具有相同的方法名
2、重写方法必须与被重写方法具有相同的参数列表
3、重写方法必须与被重写方法具有相同的返回值类型
4、重写方法不能缩小被重写方法的访问权限
重载与重写:
1、重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关。
2、重写涉及的是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同。
二、Object类
1、Object类是所有类的祖宗类,但是并不是显式继承。
2、Object类的equal方法与 ==
Object类的equal方法与==没区别,都是比较地址的;
当需要从其他方面去判定两个东西是否相等时,需要重写equal方法;
String类中的equal方法已经重写过了。