S2/JAVA/03-多态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S2/JAVA/03-多态相关的知识,希望对你有一定的参考价值。

多态:同一个实现接口,使用不同的示例而执行不同的操作。

 

子类转换成父类时的规则:

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

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

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

 

实现多态的三个条件:

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

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

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

 

当向上转型发生后,将无法调用子类特有的方法。但是当需要调用子类特有的方法时可以通过将父类再转换为子类来实现。

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

 

Instanceof运算符

语法:对象    instanceof     类或接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为truefalse

 

使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误。例如,pet  instanceof  String会出现编译错误。

Instanceof通常和强制类型转换结合使用。

以上是关于S2/JAVA/03-多态的主要内容,如果未能解决你的问题,请参考以下文章

C++多态 --- 多态实现原理简析

3.多态性

多态性的基因多态性

多态与多态性

多态分为哪两中

多态与重载