其他分享
首页 > 其他分享> > 04多态性的使用

04多态性的使用

作者:互联网

1.多态:

可以理解为一个事务的多种形态。

2.何为多态性:

对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)

Person p =new Man();

Object obj = new Date();

3.多态的使用:虚拟方法调用

有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。

总结:编译看左边;运行看右边。

4.多态性的使用前提:

①类的继承关系 ②方法的重写

5.为什么使用向下转型:

有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。只能通过向下转型调用

6.如何实现向下转型?需要注意什么问题?如何解决

Person p = new Man();

使用强转符实现向下转型:()

Man m = (Man) p;

可能ClassCastException异常。

 

使用instanceof 在进行向下转型前判断。

if(p instanceof Man){

Man m = (Man) p;

}

7.instanceof 方法的使用

①a instanceof A:判断对象a是否是类A的实例,如果是,返回true。若不是返回false

②若a instanceof A 返回true,则a instanceof B也返回true。其中,类B是类A的父类。

8.面试题

一、对多态性的理解?

① 实现代码的通用性。

②Object类中定义的public boolean equals(Object obj){ }

JDBC:使用java程序操作(获取数据库连接、CRUD)数据库(MySQL、Oracle、DB2、SQL Server)

③抽象类、接口的使用肯定体现了多态性。(抽象类、接口不能实例化)

二、多态是编译时行为还是运行时行为?

运行时行为

标签:instanceof,调用,子类,04,多态性,使用,父类,Man
来源: https://www.cnblogs.com/lx8088/p/16155549.html