首頁  >  文章  >  Java  >  Java 中何時使用介面何時使用抽象類

Java 中何時使用介面何時使用抽象類

王林
王林原創
2024-05-01 12:15:02690瀏覽

介面的使用時機:定義共享功能,由不同類型物件實作。定義回調介面(如事件偵聽器)。實現多重繼承。抽象類別的使用時機:定義透過繼承實現的通用功能。實現單繼承和多態性。定義受保護方法或欄位。

Java 中何时使用接口何时使用抽象类

Java 中介面與抽象類別的使用時機

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn