首页 > 代码库 > 多态、向上转型、向下转型、instanceof 运算符、

多态、向上转型、向下转型、instanceof 运算符、

多态

多态是具有表现多种形态能力的特征。更专业的说法: 同一个实现接口,使用不同的实例而执行不同的操作。

多态性与继承、方法重写密切相关

1.继承的存在(继承是多态的基础,没有继承就没有多态)

2.子类重写父类的方法(多态下调用子类重写后的方法)

3.父类引用变量指向子类对象(子类到父类的类型转换)

 

向上转型

 

向上转型首先是安全的,但有可能会导致子类方法的丢失,特有的方法会丢失,继承的方法可以调用

1.将一个父类的引用指向一个子类的对象,称为向上转型 ,自动进行类型转换

2.此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

3.此时通过父类引用变量无法调用子类特有的方法

 

使用父类作为方法形参实现多态

 

使用父类作为方法的返回值实现多态

 

父类到子类的转换(向下转型)

 

当需要调用子类特有的方法时,可以通过将父类再转换为子类来实现

将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型,此时必须进行强制类型转换

instanceof 运算符

 

如果没有转换为真实的子类类型,就会出现类型转换异常。

 对象  instanceof 类或接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为 true 或 false 。 在强制类型转换之前通过  instanceof  运算符检查对象的真实类型,再进行相应的强制类型转换,这样就可以避免类型转换异常,从而提高代码的健壮性。

向下转型是不安全的  要用 instanceof  来进行判断可以调用子类的特有方法,  向下转型就是先判断后强转 

多态、向上转型、向下转型、instanceof 运算符、