抽象類 (abstract class) 可包含抽象方法(無實作)與具體方法,強制子類實作抽象契約,是「模板方法模式」的基石。以下通過完整可編譯代碼演示核心語法與執行流程。
abstract class UserAbs {
// 抽象方法:子類必須實作
abstract void kkAbs();
// 具體方法:子類可直接繼承或覆寫
void kk() {
System.out.println("這是一個具體的方法");
}
}
class UserAbs1 extends UserAbs {
@Override
void kkAbs() {
System.out.println("kkAbs()方法被重寫");
}
}
public class AbstractDemo {
public static void main(String[] args) {
UserAbs1 obj = new UserAbs1();
obj.kkAbs(); // 輸出:kkAbs()方法被重寫
obj.kk(); // 輸出:這是一個具體的方法
}
}
super() 呼叫)、靜態方法、final 方法。抽象類定義「是什麼」(介面契約)與「預設怎麼做」(共享邏輯),子類專注「具體怎麼做」。經典場景:HttpServlet 定義 doGet/doPost 為抽象,開發者只需覆寫業務邏輯;資料庫存取層基類封裝連線管理,子類實作 SQL 組裝。