前提
可以體現多態的前提有三個
- 首先兩個類之間要有繼承關系
- 子類需要重寫父類方法
- 父類引用指向子類對象
舉例
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
由此我們可以列出下表
編譯 | 運行 | |
---|---|---|
成員變量 | 使用父類 | 使用父類 |
成員方法(動態綁定) | 使用父類 | 使用子類 |
靜態方法(靜態綁定) | 使用父類 | 使用父類 |