一、多态的概述
- 事物存在多种形态
2.多态的前提
- 要有继承关系
- 要有方法重写
- 要有父类引用指向子类对象
3.代码体现
class Demo1_Polymorphic {
public static void main(String[] args) {
Cat c = new Cat();
c.eat();
//父类引用指向子类对象
Animal a = new Cat();
a.eat();
}
}
class Animal {
public void eat() {
System.out.println("动物吃饭");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("猫吃鱼");
}
}
输出:
猫吃鱼
猫吃鱼
4.多态中成员变量访问特点
- 成员变量
编译看左边(父类)运行看左边(父类)
class Demo2_Polymorphic {
public static void main(String[] args) {
//父类引用指向子类对象
Father f = new Son();
System.out.println(f.num);
}
}
class Father {
int num = 10;
}
class Son extends Father {
int num = 20;
}
输出:10
5.多态中成员方法访问特点
- 成员方法
编译看左边(父类),运行看右边(子类)。动态绑定
class Demo2_Polymorphic {
public static void main(String[] args) {
//父类引用指向子类对象
Father f = new Son();
System.out.println(f.num);
Son s = new Son();
System.out.println(s.num);
Father f1 = new Son();
f1.print();
}
}
class Father {
int num = 10;