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...