前提
可以体现多态的前提有三个
- 首先两个类之间要有继承关系
- 子类需要重写父类方法
- 父类引用指向子类对象
举例
class duotai
{
public static void main(String[] args)
{
Animal am = new Cat();
//动态绑定的结果
am.eat();
//静态绑定
am.sleep();
// am.catchMouse();
am.run();
System.out.println(am.num);
System.out.println(am.age);
}
}
class Animal
{
int num = 10;
static int age = 20;
public void eat()
{
System.out.println("动物吃饭");
}
public static void sleep()
{
System.out.println("动物在睡觉");
}
public void run()
{
System.out.println("动物在奔跑");
}
}
class Cat extends Animal
{
int num = 80;
static int age = 90;
String name = "tomCat";
public void eat()
{
System.out.println("猫吃饭");
}
public static void sleep()
{
System.out.println("猫在睡觉");
}
public void catchMouse()
{
System.out.println("猫在抓老鼠");
}
}
上面代码的运行结果是
猫吃饭
动物在睡觉
动物在奔跑
10
20
由此我们可以列出下表
编译 | 运行 | |
---|---|---|
成员变量 | 使用父类 | 使用父类 |
成员方法(动态绑定) | 使用父类 | 使用子类 |
静态方法(静态绑定) | 使用父类 | 使用父类 |