首先討論抽象類和最終類的區別:
1.抽象類可以被繼承,並且穿件抽象類就是為了被繼承,但是最終類只能例項化;
2.抽象類和最終類都可以被宣告使用。
3.抽象類可以沒有抽象方法,最終類中可以沒有最終方法。
4.最終類不能被繼承,最終方法不能被重寫,但是可以被繼承。 5.
抽象類是不能例項化的,例項化必將載入類,然後根本不知道抽象方法的方法體大小,所以不能例項化。
然後是抽象類和介面的區別:
類中只要含有乙個抽象方法,該類就是抽象類;抽象類中可以包含乙個或多個抽象方法,也可以不含有抽象方法,直接在類宣告時候加上abstract
,該類就是抽象類,但是這種情況沒有意義。
介面中的方法只有宣告,沒有實現,類似抽象方法,但是不含有abstract
修飾符;
介面中的變數預設是final
和static的;
介面中的方法預設是public的;
介面定義時候,如果不宣告為public
的介面,那麼該介面只有包訪問許可權。
乙個子類只能繼承乙個抽象類(虛類),但能實現多個介面;
乙個抽象類可以有構造方法,介面沒有構造方法;
乙個抽象類中的方法不一定是抽象方法,即其中的方法可以有實現(有方法體),介面中的方法都是抽象方法,不能有方法體,只有宣告;
乙個抽象類可以是public
、private
、protected
、default,
介面只有
public;
乙個抽象類中的方法可以是public
、private
、protected
、default
,介面中的方法只能是
public
和default。
抽象類和最終類(被final修飾的類) 介面的區別
首先討論抽象類和最終類的區別 1.抽象類可以被繼承,並且穿件抽象類就是為了被繼承,但是最終類只能例項化 2.抽象類和最終類都可以被宣告使用。3.抽象類可以沒有抽象方法,最終類中可以沒有最終方法。4.最終類不能被繼承,最終方法不能被重寫,但是可以被繼承。5.抽象類是不能例項化的,例項化必將載入類,然後...
JAVA抽象類和最終類
抽象類 用abstract關鍵字修飾的類為抽象類,用abstract修飾乙個方法為抽象方法。含有抽象方法的類必須是抽象類,且抽象類必須被繼承,抽象方法必須被重寫。抽象類不能被例項化。抽象方法只需宣告,不需要實現。最終類final的變數不可以被改變 final的成員變數或者是區域性變數 final的類...
Final與抽象類
一 final final 可以用來修飾乙個變數 方法 類 修飾屬性 修飾乙個變數,這個變數就變成了常量 修飾方法 方法不能被子類重寫 修辭類 這個類不能被繼承 二 抽象類 抽象類 是一種模板模式,抽象類為所有子類提供了乙個通用的模板子類可以在這個模板上進行拓展 抽象的定義 乙個被abstract修...