十二、面向对象之多态
1.多态的概念
一种事物的多种体现形式
方法重载,方法的重写都是多态的体现
2.多态的体现形式
a.父类的引用指向子类的对象
b.接口的引用指向实现类的对象
总结:
a.如果使用了多态,将不能访问子类或者实现类中特有的属性和方法
b.在多态中访问成员变量时,如果子类中出现了和父类重名的成员变量,都访问的是父类中成员变量
c.在多态中调用了方法,只有子类重写了父类中的方法,会调用子类中重写之后的方法,如果没有重写,调用的是父类中的方法
3.使用多态的好处
a.提高了代码的可维护性
b.提高代码的扩展性
c.可以当做形参,接受任意子类的对象或者实现类的对象
4.对象的向上和向下转型
1>对象的向上转型【多态的体现】 父类或者接口 = 子类或者实现类
由子类类型转为父类类型
由实现类型转为接口类型
2>对象的向下转型【类型的强制转换】子类或者实现类 = 父类或者接口
由父类类型转为子类类型
由接口类型转为实现类型
Cat c2 = (Cat)a;
TestImp test1 = (TestImp)z;
注意:对象向下转型的时候,一定要注意类与类之间或者类与接口之间必定存在关系