抽象類 介面

2021-07-29 10:00:07 字數 1257 閱讀 3683

1,包含乙個抽象方法的類必須是抽象類;

2,抽象方法和抽象類都要使用abstract關鍵字宣告;

3,抽象方法只需要宣告而不需要實現;

4,抽象類必須被子類繼承,子類(如果不是抽象類)必須覆寫抽象類中的全部抽象方法;

何來此問題呢?因為抽象類不能直接例項化,構造方法的作用就是例項化物件的時候,給物件初始化屬性值啊,這麼一想似乎確實存在矛盾,但是真的是這樣麼?其實不然—

抽象類中是允許存在構造方法的,因為抽象類依然使用的是類的繼承關係,所以,子類進行例項化的時候,肯定是需要先對父類進行例項化的(因為這是,子類物件例項化的過程就是先呼叫父類的構造,再呼叫子類的構造),而且抽象類中也存在各個屬性。

介面的定義:

介面的使用:

介面的使用必須有子類,子類必須覆寫全部抽象方法,implements關鍵字實現介面,乙個子類可以同時實現多個介面,如果子類不是抽象類的話,則,肯定要覆寫介面中的全部抽象方法。

同時 繼承抽象類和介面:

inte***ce a
可以簡化為:

inte***ce a
這兩種定義是完全相同的,沒有任何區別。

0,乙個子類可以同事實現(繼承)多個介面,實現多重繼承的概念,但是乙個子類只能繼承乙個抽象類,不能實現多重繼承,但是可以實現多層實現;

1,介面不可以繼承抽象類;

2,抽象類可以實現介面而且可以同時實現多個介面;

3,介面可以繼承介面,而且可以同時繼承多個介面;

4,乙個子類,必然也可以同時繼承抽象類,也同時實現介面,但是要覆寫所有的抽象方法(如果這個子類不是抽象類的話)。

參考:

介面的抽象方法是否可以使用protect修飾呢?

參考1jdk8中,抽象類和介面有什麼新的內容呢?

參考2

介面,抽象類

介面 用inte ce定義介面 由常量定義和方法定義兩部分組成 格式 修飾符 inte ce a extends b 在類中實現介面,方法名 返回值型別 引數的個數和型別必須與介面中完全一致 實現介面中所有方法 實現多個介面,中間用逗號分隔 抽象類包含抽象方法的乙個類 沒有足夠資訊描繪物件 用abs...

抽象類 介面

抽象類中的抽象方法禁止寫任何實現 1,a 抽象類不能被繼承 b 抽象方法不能有任何實現,一切實現都在子類中 c 抽象類中可以有非抽象方法,但是非抽象類絕對不能有抽象方法 class program public abstract class person public class chinese p...

抽象類 介面

1.抽象類 介面 內部類。抽象類 存在與父子類中,將子類中公有的方法放進父類,但是由於方法的實現方式在不同子了中又不同方式,此時在父類中的方法不能寫具體的方法體,因此用abstract修飾寫成抽象類,因此該類沒有方法體,他是不完整的,2.抽象類的特點 1 由abstract修飾 2 包含抽象方法的類...