抽象類是一種不能被實例化的類,它的主要作用是用于被其他類繼承。抽象類可以包含抽象方法和非抽象方法,而抽象方法必須被子類實現(xiàn)。通常情況下,抽象類用于定義一些通用的行為或?qū)傩?,具體的實現(xiàn)則由子類來完成。
在 Java 中,可以通過使用 abstract 關(guān)鍵字來定義抽象類。抽象類的定義方式與普通類類似,但需要在類名前加上 abstract 關(guān)鍵字,如下所示:
public abstract class Animal {
// 抽象方法
public abstract void move();
// 非抽象方法
public void sleep() {
System.out.println("睡覺");
}
}
在上面的代碼中,我們定義了一個名為 Animal 的抽象類,包含一個抽象方法 move() 和一個非抽象方法 sleep()。抽象方法沒有方法體,只有方法簽名,用于指定方法的名稱、參數(shù)列表和返回值類型。而非抽象方法則包含了方法體,可以直接在方法中編寫代碼。
需要注意的是,如果一個類包含了抽象方法,那么該類必須也是抽象類。抽象類不能被實例化,但可以被子類繼承。子類必須實現(xiàn)父類中的所有抽象方法,否則子類也必須被定義為抽象類。
以下是一個示例代碼,演示了如何繼承抽象類并實現(xiàn)其中的抽象方法:
public class Cat extends Animal {
// 實現(xiàn)抽象方法
public void move() {
System.out.println("跑步");
}
// 重寫父類方法
public void sleep() {
System.out.println("打盹");
}
}
在上面的代碼中,我們定義了一個名為 Cat 的類,它繼承了 Animal 抽象類,并實現(xiàn)了其中的抽象方法 move()。同時,我們重寫了父類中的 sleep() 方法,用于改變其行為。現(xiàn)在,Cat 類可以被實例化并調(diào)用其中的方法。