抽象類定義共同屬性與抽象行為,子類必須實作所有抽象方法(或繼續宣告為抽象)。
public abstract class Animal {
int age;
public Animal(int age) { this.age = age; }
public abstract void run();
public abstract void clock();
}
public class Dog extends Animal {
String color;
public Dog(int age, String color) {
super(age);
this.color = color;
}
@Override
public void run() {
System.out.println("這隻 " + age + " 歲的狗這樣跑");
}
@Override
public void clock() {
System.out.println("這隻 " + color + " 的狗這樣叫");
}
}
public class Test {
public static void main(String[] args) {
Dog d1 = new Dog(20, "藍色");
d1.run(); d1.clock();
Dog d2 = new Dog(15, "紅色");
d2.run(); d2.clock();
}
}
這隻 20 歲的狗這樣跑
這隻 藍色 的狗這樣叫
這隻 15 歲的狗這樣跑
這隻 紅色 的狗這樣叫
super() 調用初始化共同欄位。Animal a = new Dog(...))。