抽象類別就像其他類別的藍圖。您不能直接從抽象類別建立物件。相反,您可以使用它作為其他類別的基礎,這些類別可以在它的基礎上建立並填寫詳細資訊。
當您想要定義具有一些共享功能的一般概念,但您也想為在不同情況下可能有所不同的特定細節留出空間時,抽象類別非常有用。例如,您可能對「動物」有一個一般概念,其中包括飲食或睡眠等常見特徵,但不同的動物可能以不同的方式飲食或睡眠。
以下是建立名為 Animal 的抽象類別的方法:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
在此範例中,makeSound() 是一個抽象方法,這表示它還沒有主體。然而 sleep() 方法已完全實作。
現在,讓我們創建一些擴展 Animal 類別的類別:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
Dog 和 Cat 類別都必須提供自己版本的 makeSound() 方法,但它們按原樣繼承 sleep() 方法。
當您有一些應在所有子類別之間共用的方法,但您也想強制這些子類別定義某些方法時,抽象類別非常有用。
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
現在,任何擴展 Bird 的類別都會繼承 Animal 的 move() 方法和 sleep() 方法,但仍需要實作 makeSound()。
Java 中的抽象類別提供了一種為相關類別建立共用基礎的方法,同時為這些類別留出了定義特定細節的空間。它們在共享功能和靈活性之間取得了平衡,使您的程式碼既強大又可重複使用。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3