目錄
在進行深入了解時,先做一道題吧,檢測一下自己的基本功如何
class a
public virtual void printfields()
}class b : a
public override void printfields()
,y=", x, y);}}
static void main(string args)
這樣輸出結果是什麼呢?點選viewcode檢視答案
view code
x=1,y=0抽象類與介面的對比已經有很多人寫了,我就不詳細介紹了,只對我目前的了解程式做乙個總結x=1,y=-1
為什麼呢?
b b = new b()時,先執行a的建構函式,輸出結果時,還沒有執行b的建構函式,此時y=0
b.printfields(); 這個時候已經執行過b的建構函式,此時y=-1
抽象類是一類事物的抽象,比如,寶馬、賓士、奧迪都是車(抽象類)。
介面定義一種行為:比如上面的三類車都會跑(介面),跑是每個車的行為,但是跑的具體方法有所不同。
這兩篇文章足以能說明抽象類與介面的區別了。
java抽象類與介面的區別抽象類與介面的特性是什麼
介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...
抽象類與介面的區別
c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...
抽象類與介面的區別
c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...