什么是多态
多态是指一类事务【对象】具有多种表现形式
行为多态:父类引用指向不同子类引用,一个相同的功能【方法】,具有不同的实现方式
实现多态的前提
存在 类的继承 | 接口的实现
多态的表现形式:父类引用指向子类引用 ==> 父类类型 变量名=new 子类();
多态的使用
一般多态是配合重写来使用
使用方式:多态调用的内容必须在父类存在
多态引用调用的结果:
······调用成员变量
···············编译运行看父类 | 左边【编译调用的变量必须父类存在,运行时得到的结果也是父类定义的值】
·······调用成员方法
··············编译看父类 | 左边【编译调用的方法在父类必须存在】
···············运行看子类 | 右边 【运行的方法是子类重写的方法题】
测试代码
public class Class002_Ploy {
public static void main(String[] args) {
//对应类型的数据赋值给对应类型的变量
Person p = new Person();
//p.test();
Student s = new Student();
//多态:
Person p2 = new Student();
p2.eat();
System.out.println(p2.str);
}
}
class Person{
String str = "Person";
void eat(){
System.out.println("用筷子吃饭");
}
}
class Student extends Person{
String str = "Student";
//重写方法
@Override
void eat(){
System.out.println("通过学习吃饭");
}
//新增方法
void study(){}
}
class Teacher extends Person{
//重写方法
@Override
void eat(){
System.out.println("通过讲课吃饭");
}
//新增方法
void study(){}
}