一.多态的概念
1. 学生 与 人 学生是一个人 ,所以学生继承了人 这是继承
2.学生 有学生形态 ,也有人的形态 这是多态
二.多态的定义
1.假如 Zi 类继承了Fu 类 或者 Zi类 实现了 Fu接口
Fu obj = new Zi(); 那么这样的形式称为多态 左父右子 即 obj 既拥有Fu 也有Zi 类的形态
2.多态写法中的 成员变量 和 成员方法的使用 规则
成员变量 :编译看左边 运行看左边 成员方法 : 编译看左边 运行看右边 注意:左边没有则报错,右边没有则往上找,找不到报错
3.多态的好处
三.上下转型
1. 多态的写法就是向上转型
1.格式: 父类的名称 对象名 = new 子类的名称(); 2.含义: 创建一个子类把他当作父类来看待使用
3.注意 : 向上选型一定要是安全的,从小范围向大范围 类似于 double num = 100; 自动类型转换
2.向下转型
1.当 Animal animal = new Cat(); 向上转完时 有一个弊端 无法使用调用 子类原有的内容,比如成员变量
2.所以需要向下转型 Cat cat = ( Cat) animal ; 把这个animal 强制还原
3.格式: 子类的名称 对象名 = ( 子类名称) 父类对象; 类似于 int num = (int) 10.0;
4.注意: 向上转的时候本来是猫,才可以转回猫 如果 Dog cat = ( Dog ) animal ; 就报错 类似int num = (int) 10.5; 精度泄露
5.所以用 instanceof来判断 返回值boolean类型 if( animal instancof Cat ){ Cat cat = ( Cat) animal ; }
向下转型 就像数据 强转一样 idea 会帮你优化
Jianpan jianpan = (Jianpan) usb;
jianpan.qiaoda(); = ((Jianpan) usb).qiaoda();