多態(tài)就是通過繼承和動態(tài)綁定來決定程序使用哪個實現(xiàn).
一個簡單的例子。
interface Animal {
public void eat();
}
class Whale extends SeaAnimal {
int age = 20;
@Override
public void eat() {
System.out.println("Whale is eatting a small fish");
}
private void swimming() {
System.out.println("Whale is swimming");
}
@Override
public int getAge() {
return age;
}
public static void staticSwimming() {
System.out.println("Static whale is swimming .");
}
}
public class SeaAnimal implements Animal {
int age = 10;
private void swimming() {
System.out.println("SeaAnimal is swimming.");
}
public static void staticSwimming() {
System.out.println("Static seaAnimal is swimming.");
}
public int getAge() {
return age;
}
public static void main(String[] args) {
SeaAnimal animal = new Whale();
animal.swimming();
animal.eat();
animal.staticSwimming();
System.out.println("The age is " + animal.age);
System.out.println("The age is " + animal.getAge());
}
@Override
public void eat() {
System.out.println("SeaAnimal is eatting a small fish");
}
}
輸出結果:
SeaAnimal is swimming.
Whale is eatting a small fish
Static seaAnimal is swimming.
The age is 10
The age is 20
從例子可以看出:
- 成員變量不具備多態(tài)
-
private方法不具備多態(tài) -
static方法不具備多態(tài) - 構造方法不具備多態(tài)