JAVA 多态详解
多态——同类型的对象,表现出的不同形态
表现形式:父类类型 对象名称 = 子类对象;
多态的前提
-
有继承关系
-
有父类引用指向子类对象
-
有方法重写
调用成员变量的特点:编译看左边,运行看右边
调用成员方法的特点:编译看左边,运行也看左边
优势
-
在多态的形态下,右边对象可以实现解耦合,便于扩展和维护
-
定义方法时,使用父类型作为参数,可以接受所有子类对象,体现多态的扩展性和便利
-
方法中,使用父类型作为参数,可以接受所有子类对象
弊端
不能使用子类的特有功能
引用数据类型的类型转换有几种方式
-
自动类型转换 父 person p = new 子 syudent();
-
强制类型转换 student s= new (student)p;
强制类型转换能解决什么问题
-
可以转换成真正的子类对象,从而调用子类独有功能
-
转换类型与真实对象类型不一致会报错
-
转换的时候用instanceof关键字进行判断