1. 程式人生 > >java面向物件的3大特徵——封裝,繼承,多型

java面向物件的3大特徵——封裝,繼承,多型

封裝:

封裝的概念:將類的某些資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問

封裝的兩大原則

    1)把儘可能多的東西藏起來,對外提供便捷的介面

    2)把所有的屬性藏起來

封裝的步驟

    1)修改屬性的可見性:把屬性設為private

    2)建立公有的getter/setter方法:用於屬性的讀寫

    3)在getter/setter方法中加入屬性控制語句:對屬性值的合法性進行判斷

封裝的好處

    1)便於使用者正確使用系統,防止錯誤修改屬性
    2)有助於系統之間的鬆耦合,提高系統獨立性
    3)提高軟體的可重用性
    4)降低了構建大型系統的風險

封裝的方法

    1)屬性隱藏(private)
    2)包機制(package)

繼承:

繼承的概念:子類繼承父類的特性,擴充套件父類的功能

關鍵字:extends

繼承的注意事項

    1)private成員不能繼承

2)構造不能繼承只能呼叫

多型:

多型的概念:父類的引用指向子類的物件(向上轉型),同一個操作,根據指向的物件不同而產生不同的結果。方法重寫是實現多型的基礎

java中實現多型的機制:父類或介面定義的引用變數可以指向子類或具體實現類的例項物件,而程式呼叫的方法在執行期才動態繫結。

多型應用場景
    1)使用父類作為方法的形參(寵物看病)
    2)使用父類作為方法的返回值(簡單工廠模式)

拓展:

1.向上轉型:父類的引用指向子類的物件,自動型別轉換。此時父類的引用無法呼叫子類特有的方法

例如:Pet dog = new Dog();

2.向下轉型:子類的引用指向父類的物件,強制型別轉換。

例如:Dog d = (Dog)dog;

3.動態繫結與靜態繫結

    1)例項方法(動態繫結機制):與引用變數實際引用的物件繫結.呼叫重寫後的方法,由執行時的jvm決定
    2)靜態方法(靜態繫結機制):與引用變數所宣告的型別繫結.編譯階段繫結

    3)成員變數(靜態變數和例項變數,靜態繫結機制):與引用變數所宣告的型別繫結.編譯階段繫結