參考文章:5.8 抽象方法和抽象類
抽象方法
使用abstract修飾的方法,沒有方法體,只有聲明。定義的是一種“規範”,就是告訴子類必須要給抽象方法提供具體的實現。
抽象類
包含抽象方法的類就是抽象類。通過abstract方法定義規範,然後要求子類必須定義具體實現。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。
要點
-
有抽象方法的類只能定義成抽象類
-
抽象類不能實例化,即不能用new來實例化抽象類。
-
抽象類可以包含屬性、方法、構造方法。但是構造方法不能用來new實例,只能用來被子類調用。
-
抽象類只能用來被繼承。
-
抽象方法必須被子類實現。
//抽象類
abstract class Animal {
abstract public void shout(); //抽象方法
}
class Dog extends Animal {
//子類必須實現父類的抽象方法,否則編譯錯誤
public void shout() {
System.out.println("汪汪汪!");
}
public void seeDoor(){
System.out.println("看門中....");
}
}
//測試抽象類
public class TestAbstractClass {
public static void main(String[] args) {
Dog a = new Dog();
a.shout();
a.seeDoor();
}
}