1. 程式人生 > >面向物件知識點總結回顧

面向物件知識點總結回顧

一、面向物件的三大特性:

    1.繼承:繼承是從已有類得到繼承資訊建立新類的過程。提供繼承資訊的類被稱為父類(超類、基類);得到繼
承資訊的類被稱為子類(派生類)。在Java中,類的繼承是指在一個現有類的基礎上去構建一個新的類,構建出來的新類被稱作子類,現有類被稱作父類,子類會自動擁有父類所有可繼承的屬性和方法。

    2.封裝:通常認為封裝是把資料和操作資料的方法繫結起來,對資料的訪問只能通過已定義的介面。面向物件
的本質就是將現實世界描繪成一系列完全自治、封閉的物件。我們在類中編寫的方法就是對實現細節的一種封裝;我
們編寫一個類就是對資料和資料操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的程式設計
介面。


    3.多型性:多型性是指允許不同子型別的物件對同一訊息作出不同的響應。簡單的說就是用同樣的物件引用調

用同樣的方法但是做了不同的事情。多型性分為編譯時的多型性和執行時的多型性。

二、抽象的定義:

    抽象是將一類物件的共同特徵總結出來構造類的過程,包括資料抽象和行為抽象兩方面。抽象只關注對

象有哪些屬性和行為,並不關注這些行為的細節是什麼 。

三、幾種許可權修飾符的區別:

    

四、過載(overload)和重寫(override)的區別

    方法的過載和重寫都是實現多型的方式,區別在於前者實現的是編譯時的多型性,而後者實現的是執行時的多型
性。過載發生在一個類中,同名的方法如果有不同的引數列表(引數型別不同、引數個數不同或者二者都不同)則視為
過載;重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的返回型別,比父類被重寫方

法更好訪問,不能比父類被重寫方法宣告更多的異常(里氏代換原則)。過載對返回型別沒有特殊的要求。

    方法過載的規則:1.方法名一致,引數列表中引數的順序,型別,個數不同。2.過載與方法的返回值無關,存在於父類和子類, 同類中。3.可以丟擲不同的異常,可以有不同修飾符

    方法重寫的規則:1.引數列表必須完全與被重寫方法的一致,返回型別必須完全與被重寫方法的返回型別一致。2.構造方法不能被重寫,宣告為 final 的方法不能被重寫,宣告為 static 的方法不能被重寫,但是能夠被再次宣告。3.訪問許可權不能比父類中被重寫的方法的訪問許可權更低。4.重寫的方法能夠丟擲任何非強制異常(UncheckedException,也叫非執行時異常),無論被重寫的方法是否丟擲異常。但是,重寫的方法不能丟擲新的強制性異常,或者比被重寫方法宣告的更廣泛的強制性異常,反之則

可以。

五、抽象類(abstract class)和介面(interface)有什麼異同

        抽象類:1.抽象類中可以定義構造器2.可以有抽象方法和具體方法3.介面中的成員全都是 public 的4.抽象類中可以定義成員變數5.有抽象方法的類必須被宣告為抽象類,而抽象類未必要有抽象方法6.抽象類中可以包含靜態方法。7.一個類只能繼承一個抽象類 。

        介面:1.介面中不能定義構造器2.方法全部都是抽象方法3.抽象類中的成員可以是 private、預設、 protected、 public4.介面中定義的成員變數實際上都是常量5.介面中不能有靜態方法6.一個類可以實現多個介面

        相同點:1.不能夠例項化2.可以將抽象類和介面型別作為引用型別3.一個類如果繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法全部進行實現,否則該類仍然需要被宣告為抽象類