一:多态性是建立在继承性质之下的,如果类之间不存在继承性就无多态性可言。
二:基本表现:子类对象可以替代父类对象进行调用,好处:增加了通用性,如一个变量声明为父类对象,则可以赋值为父类对象及其子类对象。
三:注意点:
1、eg:Person p = new Student(); 作用为:Person在内存空间申请一个引用空间,new Stundent()为对象的创建Student类并未其中的成员分配内存空间, = 表示引用变量p指向创建对象的首地址。根据p的实际引用类型来访问Student,因为编译器是通过申明的类型进行检查的。
2、一个引用类型的变量申明为父类类型,实际引用的是子类对象的话,那么该变量就不能再访问子类中添加的属性和方法。
3、虚方法调用:在父类中申明过,子类中重写过的方法,系统会根据运行时对象的真正类型来具体调用哪个方法:即子类调用子类方法,父类调用父类方法。
4、对象造型:只有一个对象真正类型为子类类型,才能造型成功,故instanceof关键字的产生
5、协变返回类型:允许重写方法时修改返回值的类型,但必须是重写前方法返回类型的子类或者实现类类型
|
|