首頁  >  文章  >  Java  >  Java 中介面和抽象類別的用法和區別

Java 中介面和抽象類別的用法和區別

WBOY
WBOY原創
2024-05-01 09:42:01536瀏覽

介面和抽象類別用來定義行為契約。介面定義了方法簽名,而抽象類別包含方法聲明和實作。介面不能實例化,而抽象類別可以。介面中的方法預設為公共抽象,而抽象類別中的方法預設為受保護抽象。介面用於定義通用 API,而抽象類別用於建立類別基類別和提供基本行為。

Java 中接口和抽象类的用法和区别

Java 中介面與抽象類別的用法與差異

簡介

介面和抽象類別是Java 中兩個很重要的概念,它們都被用來定義行為契約,但它們有不同的用法和特徵。

介面

  • 介面是一種特殊的類,它定義了一組要做的事情(方法),但沒有實作這些方法。
  • 它是純抽象型,不能實例化。
  • 實作了介面的類別必須實作介面中宣告的所有方法。
  • 介面可以繼承其他接口,但不能繼承類別。
  • 介面中的方法預設是公共抽象的。

程式碼範例:

public interface Drawable {
    void draw();
}

抽象類別

  • 抽象類別是一種類,它包含抽象方法和具體方法。
  • 抽象方法是只有宣告而沒有實作的方法。
  • 實例化抽象類別會拋出例外。
  • 抽象類別可以繼承其他類別或抽象類別。
  • 抽象類別中的方法預設是 protected 的。

程式碼範例:

public abstract class Shape {
    protected String color;
    public abstract void draw();
}

用法

介面:用於定義公共API,例如可以由多個類別實現的統一介面。

  • 例如,一個 Drawable 介面可以表示任何可以繪製的類,而無需考慮具體的實作。

抽象類別:用於建立一個類別的基類,並提供一些基本行為和狀態,同時允許子類別自訂這些行為和狀態。

  • 例如,一個Shape 抽象類別可以提供一些形狀的共同屬性(如顏色),並定義一個抽象的draw() 方法,用於子類別實現具體的繪製行為。

差異

  • 介面只包含方法聲明,而抽象類別既包含方法聲明也包含實作。
  • 介面不能實例化,而抽象類別可以衍生出子類別。
  • 介面中的方法預設是公共抽象的,而抽象類別中的方法預設是受保護的抽象的。

實戰案例

考慮一個自訂形狀繪製應用程序,其中需要顯示各種形狀。

  • 可以建立一個 Drawable 介面來定義繪製方法。
  • 然後可以建立 RectangleCircle 等形狀的類,這些類別實作 Drawable 介面並提供自己的繪製實作。
  • 應用程式可以遍歷各種形狀並呼叫 draw() 方法來顯示它們。

以上是Java 中介面和抽象類別的用法和區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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