抽象層次從高到底:介面->抽象類->具體實現類
1.介面中定義了一些方法,但是沒有實現。
2.在介面的具體實現類中,如果有共同的實現《部分》,可用乙個抽象類來實現這些共同的部分;個性化的實現交給具體實現類《子類》完成。
3.《抽象類提供了公共方法的實現》
使用場景:
包含抽象方法的類即為抽象類,當乙個抽象類中所有的方法都是抽象時,我們就可以定義成介面。
在設計類時,如果有些方法我們能確定,而有些方法不能確定,這時候我們就可以把該類宣告成抽象類。抽象類的應用場景非常多,例如模板方法模式就是抽象類的乙個應用,jdk中的inputstream和outputstream也是抽象類的乙個應用,這兩個類定義了如何讀寫資料的方法,而沒有定義從**去讀,具體從**讀由具體的實現子類確定。
我們在定義相互呼叫規則時,可以使用介面。面向介面進行程式設計的明顯好處,就是能極大降低軟體系統的相互耦合性,介面的定義者按照介面進行呼叫,而實現者去實現介面。
在jdk中存在許多針對於介面的程式設計,例如用於比較物件的comparable介面就是乙個典型案例,我們在自定義物件時,如果實現了該介面,那麼我們把物件儲存到treeset集合中時,treeset將針對介面呼叫物件的compareto方法。
抽象類和介面的區別(使用舉例)
區別 1 抽象類代表的是 is a 的關係,介面所代表的是 like a 的關係。2 介面實際上是乙個特殊的抽象類。3 抽象類可以有抽象方法,也可以有例項方法 介面中所有的方法都是公開抽象方法 4 具體類使用抽象類,用extends 繼承 具體類使用介面,用implements 實現 5 具體類實現...
抽象類和介面的區別,使用場景
我簡單說明一下我的看法 1 介面是核心,其定義了要做的事情,包含了許多的方法,但沒有定義這些方法應該如何做。2 如果許多類實現了某個介面,那麼每個都要用 實現那些方法 3 如果某一些類的實現有共通之處,則可以抽象出來乙個抽象類,讓抽象類實現介面的公用的 而那些個性化的方法則由各個子類去實現。所以,抽...
Java抽象類和介面的區別
含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的,抽象來中定義抽象方法必須放在具體子類中實現,所以呀,不能有抽象的構造方法或抽象的靜態方法,...