java抽象類和介面的理解

2021-07-31 02:55:03 字數 1286 閱讀 1390



1.理解抽象類

比如:如果我們進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓、三角形 這樣一些具體概念,它們是不同的,但是它們又都屬於形狀這樣乙個概念,形狀這個概念在問題領域是不存在的,它就是乙個抽象概念。正是因為抽象的概念在問題 領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類是不能夠例項化的。

2.從語法定義層面看abstract class和inte***ce

abstract class demo {    

abstract void method1();    

abstract void method2();    

}   

inte***ce demo     

abstract class方式中,demo可以有自己的資料成員,也可以有非abstarct的成員方法,

而在inte***ce方式的實現中,demo只能夠有靜態的 不能被修改的資料成員(也就是必須是static final的,不過在inte***ce中一般不定義資料成員),所有的成員方法都是abstract的。

從某種意義上說,inte***ce是一種特殊 形式的abstract class。

3. 總結幾句話來說:

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

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

3、介面只能做方法申明,抽象類中可以做方法申明,也可以做方法實現

4、介面裡定義的變數只能是公共的靜態的常量,抽象類中的變數是普通變數。

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

6、抽象方法只能申明,不能實現。abstract void abc();不能寫成abstract void abc(){}。

7、抽象類裡可以沒有抽象方法

8、如果乙個類裡有抽象方法,那麼這個類只能是抽象類

9、抽象方法要被實現,所以不能是靜態的,也不能是私有的。

10、介面可繼承介面,並可多繼承介面,但類只能單根繼承。

4、抽象類

public abstract class test

}子類:

public class testdemo extends test

}抽象類裡面可以有抽象方法,也可以有自己的方法,子類在繼承抽象類的時候,只會繼承父類的抽象方法,

在建立物件時,只能new 子類,呼叫子類方法



java 抽象類和介面的理解

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

抽象類和介面的理解

1.抽象類 抽象類更像是乙個模板,它擁有類的所用功能,它不僅可以寫抽象方法,也可以寫實現的方法,定義變數等等。總歸他有類的一切功能只是不能被例項化而已。它有單繼承的功能。2.介面 介面更像是對於行為上的定義,它是抽象方法的集合。它的變數會被private static final預設修飾。他可以擁有...

對抽象類和介面的理解

abstract class inte ce 1.定義方式 abstract class demo abstract void method1 abstract void method2 可以有抽象和非抽象的方法 inte ce demo 不可以有具體的方法 2.使用上 所以根據他們的特性,abst...