面試題總結 抽象類和介面的對比

2021-09-24 18:21:59 字數 526 閱讀 2466

1、結構組成

抽象類:普通類+抽象方法

介面:全域性變數+抽象方法

2、許可權

抽象類:除private/final外各種許可權均可修飾

介面:只能是public修飾

3、子類的使用

抽象類:使用extends繼承抽象類

介面:使用implements實現介面

4、子類限制

抽象類:乙個子類只能繼承乙個抽象類

介面:乙個子類可以實現多個介面1、抽象類可以使用implements實現介面,乙個抽象類可以實現若干個介面(抽象類是個加強版的普通類)

①若抽象類實現了介面,可以不實現介面的方法,因為抽象類本身是抽象的,由其子類實現即可。

②父類已經實現了介面,而子類不僅繼承父類,又再實現了一遍介面,目的是為了強調作用,沒別的用處。

2、介面不能extends繼承抽象類(若能繼承就有普通方法、普通屬性、構造方法…了,不滿足介面的定義)

3、介面可以使用extends繼承多個父介面。

面試題 抽象類和介面的區別

含有abstract修飾符的class 即為抽象類。abstract類不能建立例項物件 含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的 抽象類中定義抽象方法必須放在具體子類中實現 所以呀,不能有抽象的構造方法或抽象的靜態方法,...

抽象類和介面的區別(面試題)

含有 abstract 修飾符的 class 即為抽象類,abstract 類不能建立例項物件。含有 abstract 方法的類必須定義為 abstract class abstract class 類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體 concrete ...

抽象類和介面的區別(面試題)

抽象類要被子類繼承,介面要要被類實現 抽象類可以有抽象方法,也可以有例項方法 介面只能有抽象方法 3.抽象類可以有具體的方法和屬性 介面只能有抽象方法和不可變常量 4抽象類可以有構造方法 介面不能有構造方法 5 乙個類可以實現多個介面 但只能繼承乙個抽象類 6 抽象類中可以包含靜態方法 介面中不能包...