JAVA 面向对象之多态
多态性
多态的概述
多态是同一个行为具有多个不同表现形式或形态的能力。
多态存在的三个条件:继承、接口、父类引用指向子类对象
多态的成员特点
成员变量 编译时看的是左边,运行时看的左边
成员方法 编译时看的是左边,运行时看右边
静态方法 编译时看的是左边,运行时看的也是左边
多态的转型
引用类型之间的转换
向上转型:由小到大(子类型转换成父类型)
向下转型:由大到小
基本数据类型的转换
自动类型转换:由小到大
byte short char --- int --- long --- float --- double
强制类型转换:由大到小
格式: Animal a = new Dog();
Dog d = (Dog) a;
instanceof 关键字:格式: 对象 instanceof 类名称
将会得到一个boolean值结果,也就是判断前面的对象能不能当作后面类型的实例
多态的优缺点
优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性
缺点:无法直接访问子类特有的成员