介面的使用時機:定義共享功能,由不同類型物件實作。定義回調介面(如事件偵聽器)。實現多重繼承。抽象類別的使用時機:定義透過繼承實現的通用功能。實現單繼承和多態性。定義受保護方法或欄位。
Java 中介面與抽象類別的使用時機
在Java 中,介面與抽象類別都是用來定義對象行為的抽象概念。儘管它們具有相似之處,但在使用目的上有明確的區別。
介面
介面是一個包含方法簽章(即無實作的方法宣告)的契約。它定義了某個類別必須實作的公共方法集。
何時使用介面?
public interface Animal { void eat(); void sleep(); }
抽象類別
抽象類別是一種部分抽象的類,其中包含方法實作和抽象方法的組合。抽象類別不能被實例化,但可以被子類別繼承。
何時使用抽象類別?
public abstract class Mammal { public void giveBirth() { ... } public abstract void makeSound(); }
實戰案例
介面
建立一個Shape 接口,定義用於計算面積和周長的公共方法:
public interface Shape { double getArea(); double getPerimeter(); }
使用該介面建立Rectangle 和Circle 類別:
public class Rectangle implements Shape { // ... } public class Circle implements Shape { // ... }
抽象類別
建立一個Shape 抽象類別,定義用於計算面積和周長的受保護方法:
public abstract class Shape { protected double area; protected double perimeter; public abstract double getArea(); public abstract double getPerimeter(); }
使用該抽象類別建立Rectangle 和Circle 類,覆蓋getArea() 和getPerimeter() 方法:
public class Rectangle extends Shape { // ... } public class Circle extends Shape { // ... }
以上是Java 中何時使用介面何時使用抽象類的詳細內容。更多資訊請關注PHP中文網其他相關文章!