多态
多态是具有表现多种形态能力的特征。更专业的说法: 同一个实现接口,使用不同的实例而执行不同的操作。
多态性与继承、方法重写密切相关
1.继承的存在(继承是多态的基础,没有继承就没有多态)
2.子类重写父类的方法(多态下调用子类重写后的方法)
3.父类引用变量指向子类对象(子类到父类的类型转换)
向上转型
向上转型首先是安全的,但有可能会导致子类方法的丢失,特有的方法会丢失,继承的方法可以调用
1.将一个父类的引用指向一个子类的对象,称为向上转型 ,自动进行类型转换
2.此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法
3.此时通过父类引用变量无法调用子类特有的方法
使用父类作为方法形参实现多态
使用父类作为方法的返回值实现多态
父类到子类的转换(向下转型)
当需要调用子类特有的方法时,可以通过将父类再转换为子类来实现
将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型,此时必须进行强制类型转换
instanceof 运算符
如果没有转换为真实的子类类型,就会出现类型转换异常。
对象 instanceof 类或接口
该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为 true 或 false 。 在强制类型转换之前通过 instanceof 运算符检查对象的真实类型,再进行相应的强制类型转换,这样就可以避免类型转换异常,从而提高代码的健壮性。
向下转型是不安全的 要用 instanceof 来进行判断可以调用子类的特有方法, 向下转型就是先判断后强转
时间: 2024-10-13 11:35:52