多态:polymorphic 多态可以理解为事物存在的多种形态
多态的前提:要有继承关系;要有方法重写;要有父类引用指向子类对象。
多态的好处:
- 提高了代码的维护性(由继承保证,父类修改,子类继承的成员也改变了)
- 提高了代码的扩展性(由多态保证,方法参数为父类类型,可以接受子类对象)
多态的弊端:
- 提高了扩展性,但是只能使用父类的引用访问父类中的成员
关键字instanceof:判断前边的对象是否是后边的数据类型
向上转型:父类引用指向子类对象
向下转型:必须现有向上转型才有向下转型
注意:多态自始至终都是子类对象在做着变化。
在多态中成员的特点:
- 成员变量:编译看左边(父类),左边(父类)
- 成员方法:编译看左边(父类),运行看右边(子类)(也叫动态绑定,因为子父类中的方法有重写特性,所以运行时会调用子类中的方法)
- 静态成员:编译看左边(父类),左边(父类)
开发的时候很少在创建对象的时候用父类引用指向子类对象,直接创建子类对象更方便,可以使用子类中的特有属性和方法。
当做方法的参数的时候使用多态最好,应为扩展性强。
|
|