1.什么是多态
多种行态
Person p2=new English(); 父类引用变量 指向 子类对象
p2.eat(); 父类引用变量调用子类重写的方法
2.形成多态条件
A.继承 如 Person Chinese
B.父类引用变量 指向 子类对象 如: Person p2=new Chinese();
C.父类引用变量调用子类重写的方法 如: p2.eat();
3.多态的好处
提高代码复用率
扩展项目
4.多态的适用情况、
5.多态涉及的知识点
转型
数据类型
基本数据类型8
自动转换
eg:int --->double
强制转换:
eg:double---->int
数据类型=(数据类型)表达式
编译错误:Type mismatch: cannot convert from double to int
引用数据类型
String 自定义类 接口 等
向上转型:
Person p=new Chinese();
父类引用变量指向子类对象
A.父类引用变量可以调用子类继承的方法 p.sleep();
B.父类引用变量可以调用子类重写的方法 p.eat();
C.父类引用变量不可以调用子类特有的方法 p.playTJ();
向下转型:
Chinese ch=new Person();//错
子类引用变量指向父类引用变量
Person p=new Chinese();//创建父类引用变量
Chinese ch=p;
编译错误:Type mismatch: cannot convert from Person to Chinese
异常:java.lang.ClassCastException: com.qf.oop.polymorphism4.Chinese cannot be cast to com.qf.oop.polymorphism4.English
类型转换异常
关系运算符:> < >= <= == != instanceof
多种行态
Person p2=new English(); 父类引用变量 指向 子类对象
p2.eat(); 父类引用变量调用子类重写的方法
2.形成多态条件
A.继承 如 Person Chinese
B.父类引用变量 指向 子类对象 如: Person p2=new Chinese();
C.父类引用变量调用子类重写的方法 如: p2.eat();
3.多态的好处
提高代码复用率
扩展项目
4.多态的适用情况、
5.多态涉及的知识点
转型
数据类型
基本数据类型8
自动转换
eg:int --->double
强制转换:
eg:double---->int
数据类型=(数据类型)表达式
编译错误:Type mismatch: cannot convert from double to int
引用数据类型
String 自定义类 接口 等
向上转型:
Person p=new Chinese();
父类引用变量指向子类对象
A.父类引用变量可以调用子类继承的方法 p.sleep();
B.父类引用变量可以调用子类重写的方法 p.eat();
C.父类引用变量不可以调用子类特有的方法 p.playTJ();
向下转型:
Chinese ch=new Person();//错
子类引用变量指向父类引用变量
Person p=new Chinese();//创建父类引用变量
Chinese ch=p;
编译错误:Type mismatch: cannot convert from Person to Chinese
异常:java.lang.ClassCastException: com.qf.oop.polymorphism4.Chinese cannot be cast to com.qf.oop.polymorphism4.English
类型转换异常
关系运算符:> < >= <= == != instanceof