Java中抽象類和介面的區別

2021-07-31 16:08:28 字數 578 閱讀 5455

抽象類和介面都是用來抽象具體物件的,但是介面的抽象級別最高

1.抽象類和介面都不能直接例項化,如果要例項化,抽象類變數必須指向實現所有抽象方法的子類物件,抽象變數必須指向所有介面方法的類物件

2.抽象類要被子類繼承,介面要被類實現

3.抽象類裡可以沒有抽象方法,如果類裡有抽象方法,那麼這個類只能是抽象類

4.介面裡定義的變數只能是公共的靜態常量(public static final),介面裡的方法時公共的抽象方法(public abstract),抽象方法要被實現,所以不能是靜態的,也不能是私有的,抽象類裡的變數是普通變數

5.抽象類裡的抽象方法必須全部被子類所實現,如果子類不能全部實現父類抽象方法,那麼該子類只能是抽象類,同樣,乙個類實現介面的時候,如果不能全部實現介面方法,那麼該類也只能為抽象類

舉例:抽象類表示的是這個物件是什麼,介面表示的是這個物件能做什麼,比如,男人和女人這兩個類,他們的抽象類是人,說明他們是人,人可以吃東西,狗也可以吃東西,你可以把「吃東西」定義乙個介面,然後讓這些類去實現它

在高階語言上,乙個類只能繼承乙個類(抽象類)(正如人不可能同時是生物和非生物),但是可以實現多個介面(吃飯介面,走路介面).

java中抽象類和介面的區別

1 概念 抽象類 abstract class 宣告方法的存在但不去實現它的類叫做抽象類。抽象類中可以有實現了的方法,也可以沒有實現了的方法 抽象類中可以沒有抽象的方法,但有抽象方法的類一定是抽象類。抽象類與普通類最大的區別是它不能被直接例項化,只能通過子類間接例項化。介面 inte ce 是抽象類...

JAVA 中 抽象類和介面的區別

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

java中抽象類和介面的區別

在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。抽象類往往用來表徵我們在對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象,我們不能把它...