介面和抽象類有什麼聯絡和區別

2022-08-24 23:57:17 字數 932 閱讀 3472

抽象類:

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

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

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

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

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

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

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

抽象類和普通類的區別:

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

抽象方法的訪問修飾符必須為public和protected。

抽象類不能被例項化。

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

抽象類和介面區別如下:

乙個類只能繼承乙個抽象類,而乙個類可以實現多個介面。

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

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

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

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

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

抽象類中可以有靜態**塊和靜態方法,介面中不能含有靜態**塊以及靜態方法

介面和抽象類有什麼聯絡和區別

抽象類 乙個類中有抽象方法,這個類就變成了抽象類。抽象類中class的前面必須有abstract修飾符。抽象類中可以有普通方法,也可以有抽象方法,而抽象方法的個數可以是0個,也可以是多個。子類繼承父類,必須重寫全部的抽象方法,除非這個類也變成了抽象類。介面 表面上看,介面是一種特殊的抽象類,但是類是...

介面和抽象類有什麼區別

介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼?介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類 如果是類的話 他們的抽象類是人。說明,他們都是人。人可以吃東西,狗也可以吃東西,...

介面和抽象類有什麼區別

介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼?介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類 如果是類的話 他們的抽象類是人。說明,他們都是人。人可以吃東西,狗也可以吃東西,...