首頁 >Java >Java入門 >java中抽象類別與普通類別、介面的區別分別是什麼

java中抽象類別與普通類別、介面的區別分別是什麼

王林
王林轉載
2019-11-27 14:27:235028瀏覽

java中抽象類別與普通類別、介面的區別分別是什麼

抽象類別:

一個類別中有抽象方法,這個類別就變成了抽象類別。

抽象類別中class的前面必須有abstract修飾符。

抽象類別中可以有普通方法,也可以有抽象方法,而抽象方法的數量可以是0個,也可以是多個。

子類別繼承父類,必須重寫全部的抽象方法,除非這個類別也變成了抽象類別。

免費線上學習影片推薦:java線上學習

介面:

表面上看,介面是一種特殊的抽象類,但是類別是類,介面是接口,是並列的關係。

介面中所有方法都必須是抽象的。 (1.8之後允許介面定義非抽象方法)

介面中方法定義預設為public abstract類型,成員變數預設為public static final 類型。 (如果省略,系統會預設補全)。

抽象類別和普通類別的區別:

包含抽象方法的類別稱為抽象類別,但並不意味著在抽象類別中只能有抽象方法,和普通類別一樣,同樣可以擁有成員變數和普通的成員方法。

抽象類別和普通類別的差異如下:

抽象方法的存取修飾符必須為publicprotected

抽象類別不能被實例化。

如果一個類別繼承於抽象類,則子類別必須實作父類別的抽象方法,如果子類別沒有實作父類別的抽象方法,則子類別必須也一個抽象類別。

抽象類別和介面的區別:

一個類別只能繼承一個抽象類,而一個類別可以實作多個介面。

抽象類別可以有建構方法,介面中不能有建構方法。

抽象類別中可以有成員變量,介面中沒有成員變數。 (被final修飾變成了常數)

抽象類別中可以有普通方法,介面中所有方法都必須是抽象的。 (1.8後允許介面定義非抽象方法)

抽象類別中抽象方法的存取類型可以是publicprotected,但介面中抽象方法的存取類型只能是public,並且預設為public abstract(省略則自動預設補全)。

抽象類別中的成員變數可以是各種類型的,而介面中的成員變數只能是public static final類型的。

抽象類別中可以有靜態程式碼區塊和靜態方法,介面中不能含有靜態程式碼區塊以及靜態方法。

想學習更多相關文章教學請造訪:java語言入門

以上是java中抽象類別與普通類別、介面的區別分別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除