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)
③抽象类、接口的使用肯定体现了多态性。(抽象类、接口不能实例化)
二、多态是编译时行为还是运行时行为?
运行时行为
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/245303.html