多态-重温
程序员文章站
2022-03-15 18:52:17
...
多态
太搞笑了,我居然以为自己懂多态了,今天复习一下 反正自己太多得不足
- 什么是多态:就是指一个引用(类型)在不同的情况下的多种状态
- 多态存在的三个必要条件:继承 重写 父类指向子类
- 预备知识:向上转型
- 多态链优先级
- 多态的好处:替换 扩充 灵活 等等
如何使用:
父类对象指向子类对象:
1)person为父类,student为子类。那么:person p=new student();
2)fliable为接口,bird为实现接口的类,那么:fliable f=new bird();
3)fliable为抽象类,bird为继承fliable的类,那么:fliablef=new bird();
注意:父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的
注意:父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的
注意:父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的
## 优先级:
java继承链中方法调用优先级.顺序:
this.show(object)>super.show(object)
>this.show((super)object)>super.show((super))
复习重写 :子类的方法必须和父类要重写的方法 方法名,参数列表,返回值一样
优先级说明:
1.查找子类重写的方法,有则调用,无则下一步
2.调用父类方法(同参数 同名),若不同参下一步
3.对参数向上转型 重复1 2步骤
太久了 居然忘了 果然 复习 可以查缺补漏!
原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。