介面和抽象類的對比
面試問道了介面和抽象類。這個超級簡單的問題竟然答錯了,最後整理一遍,一邊夯實自己的記憶。
首先要明白 抽象類時 abstract 介面時inte***ce。所謂的介面,並不是開發過程中a專案組和b專案組對接的介面。abstract 是用來修飾class的,inte***ce 和class 是兩種型別。
在組成上,
抽象類中可以有預設防範,也可以有抽象方法。並且抽象類中的方法可以全部是抽象方法,也可以全部都有預設方法。抽象方法在使用中可以繼承別的類,也可以實現別的介面, !!!重點!!! 抽象類可以extend別的類的同時也實現別的介面。和正常類一樣。
介面中必須全部是抽象方法,不能有方法體,就是這麼乾脆利落。介面可以實現介面??省省吧,介面可以繼承不能實現,因為介面沒有方法體,但是介面可以繼承介面,這樣實現這個介面的類需要是實現多個兩個介面的方法了。
附乙個介面和抽象類的對比圖:
引用自:
這位博主說的介面的多繼承有點問題,自己試了一下,介面時不能繼承類的,正如上文所說,介面中沒有實體方法。
在使用方面
上面這位博主寫的不錯,引用了。
附:介面時可以定義變數的,親測。但至少是default級別的。
Java抽象類和介面的區別
含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的,抽象來中定義抽象方法必須放在具體子類中實現,所以呀,不能有抽象的構造方法或抽象的靜態方法,...
java 抽象類和介面的區別
從語法層面上講 抽象類 1 抽象類的使用的關鍵字是abstract 2 抽象類類中能夠直接在抽象類中直接實現非抽象方法相關的預設方法的實現 3 抽象類中可以定義變數 4 再抽象類中成員中可以使用 public private protected許可權修飾 5 抽象類中可以定義自己的成員變數屬性 介面...
Java 抽象類和介面的區別
一 抽象類 包含抽象方法的類稱為抽象類,可以擁有成員變數和 普通的成員方法。與普通類的區別 1.抽象方法必須為public或者protected 因為如果為private,則不能被子類繼承,子類便無法實現該方法 預設情況下預設為public。2.抽象類不能用來建立物件 3.如果乙個類繼承於乙個抽象類...