1 什么是多态:同一类别有多种表现形式,比如员工有管理人和技术人员
2 java中怎么实现多态:继承与实现是Java中多态的基础,使用时就是父类对象的引用指向子类对象(或者实现类)
Fu fu = new Zi();
3 关于成员变量与成员方法的调用
成员变量:等号左边是谁,则用谁,没有向上找(编译看左边,运行还看左边)
成员方法:new出来的是谁,就用谁,没有向上找(编译看左边,运行看右边)
1 public class Fu{ 2 public int a=10; 3 public void methodFu(){ 4 System.out.println("fu类方法"); 5 } 6 7 }
1 public class Zi extends Fu{ 2 public int a=5; 3 public void methodZi(){ 4 System.out.println("zi类方法"); 5 } 6 }
1 public class Test{ 2 public static void main(String[] args){ 3 Fu fu = new ZI(); // 多态写法 4 fu.a //10 5 fu.methodZi(); //父类没有会报错 6 } 7 }
4 多态的好处
左边的对象类型可以统一
5对象的向上转型
就是多态的写法,一定是安全的,但是存在子类存在的方法如果父类中不存在,则无法使用
6对象的向下转型
和强制类型转换类似,子类必须是对应的类型,如果类型不匹配,就会出错classcastExecption
7instanceof 关键字 防止向下转型错误
animal instanceof Dog 判断是否为Dog类
对象名 instanceof 类型