參考網址: https://dotblogs.com.tw/ace_dream/2016/01/10/oop1
物件導向的三大特性:
封裝:(Encapsulation):指的是將一組相關的屬性、方法和其他成員,視為單一單位或物件。
繼承(Inheritance):則是描述依據現有類別來建立新類別的能力。
多型(Polymorphism):指的是您可以有多個交替使用的類別,即使每個類別是以不同的方式來實作相同的屬性或方法。
封裝:(Encapsulation):
物件都會擁有物件內部的私有部分(屬性、方法...)而這些部分必須是外界無法直接存取,這樣才能保有物件的完整性。
如果"破壞封裝"的話,會有可能無法恢復原來的功能,因此物件必須將私有的部分封裝在物件的內部,而使用者只能藉由物件所提供的方法、屬性來操控物件,以保持物件的完整性,這就是封裝的特性。
物件導向的三大特性:
封裝:(Encapsulation):指的是將一組相關的屬性、方法和其他成員,視為單一單位或物件。
繼承(Inheritance):則是描述依據現有類別來建立新類別的能力。
多型(Polymorphism):指的是您可以有多個交替使用的類別,即使每個類別是以不同的方式來實作相同的屬性或方法。
封裝:(Encapsulation):
物件都會擁有物件內部的私有部分(屬性、方法...)而這些部分必須是外界無法直接存取,這樣才能保有物件的完整性。
如果"破壞封裝"的話,會有可能無法恢復原來的功能,因此物件必須將私有的部分封裝在物件的內部,而使用者只能藉由物件所提供的方法、屬性來操控物件,以保持物件的完整性,這就是封裝的特性。
繼承(Inheritance):
一個物件A得到另一個物件B特性的過程稱為“A繼承B”,物件B則屬於“父類別”或稱基礎類別(Base class),物件A則屬於子類別或稱為衍生類別(Derived class)。
子類別可以繼承父類別的能力,直接使用父類別非私有的屬性和方法。
子類別只能繼承一個父類別。
父類別的方法若宣告為虛擬(virtual),則表示該方法可以被子類別覆寫(非必需)。
父類別的方法若宣告為抽象(abstract),則表示該子類別一定要覆寫該方法(子類別為抽象類別除外)。
類別若包含抽象成員,則該類別必需宣告為抽象類別。
父類別又叫做基底類別(Base Class)。
子類別又叫做衍生類別(Derived Class)。
若方法或屬性宣告為密封(sealed),則不可以被子類別覆寫
多型(Polymorphism):又稱同名異式,是透過動態繫結的方式讓我們在程式執行時期可以動態決定物件參考所要執行的方法,多型允許我們在程式中使用名稱相同的方法或屬性,但不須考慮當時使用的物件型別是什麼。若要設計多型,子類別就必須先覆寫父類別同名稱的方法或屬性,接著再使用父類別的物件參考來選擇所要執行子類別物件實體的方法。由於多型的使用上會在類別中建立名稱相同的成員(屬性或方法),多載(Overloading)和覆寫(Overriding)也可以建立名稱相同的成員,因此有必要釐清這兩者的概念。
多載(Overloading):可接受不同個數的參數或不同資料型別的參數,用來提供不同版本的屬性或方法。也就是多個方法擁有"相同名稱"但"不同參數",傳入不同參數時會執行對應的方法。
覆寫(overriding):子類別的成員可用來取代父類別中不適用的成員,子類別覆寫父類別的成員時,子類別與父類別的成員必須接受相同個數的參數與相同的資料型別。也就是子類別重新定義父類別的"同名同參數"方法。
如果子類別想要重新定義父類別的方法或屬性(覆寫),首先必須將父類別的方法宣告為virtual,表示父類別允許被子類別的同名的方法覆蓋;而子類別要覆蓋父類別同名稱的方法,必須將子類別的方法宣告為override(覆寫),表示要重新定義父類別的方法。
一個物件A得到另一個物件B特性的過程稱為“A繼承B”,物件B則屬於“父類別”或稱基礎類別(Base class),物件A則屬於子類別或稱為衍生類別(Derived class)。
子類別可以繼承父類別的能力,直接使用父類別非私有的屬性和方法。
子類別只能繼承一個父類別。
父類別的方法若宣告為虛擬(virtual),則表示該方法可以被子類別覆寫(非必需)。
父類別的方法若宣告為抽象(abstract),則表示該子類別一定要覆寫該方法(子類別為抽象類別除外)。
類別若包含抽象成員,則該類別必需宣告為抽象類別。
父類別又叫做基底類別(Base Class)。
子類別又叫做衍生類別(Derived Class)。
若方法或屬性宣告為密封(sealed),則不可以被子類別覆寫
多型(Polymorphism):又稱同名異式,是透過動態繫結的方式讓我們在程式執行時期可以動態決定物件參考所要執行的方法,多型允許我們在程式中使用名稱相同的方法或屬性,但不須考慮當時使用的物件型別是什麼。若要設計多型,子類別就必須先覆寫父類別同名稱的方法或屬性,接著再使用父類別的物件參考來選擇所要執行子類別物件實體的方法。由於多型的使用上會在類別中建立名稱相同的成員(屬性或方法),多載(Overloading)和覆寫(Overriding)也可以建立名稱相同的成員,因此有必要釐清這兩者的概念。
多載(Overloading):可接受不同個數的參數或不同資料型別的參數,用來提供不同版本的屬性或方法。也就是多個方法擁有"相同名稱"但"不同參數",傳入不同參數時會執行對應的方法。
覆寫(overriding):子類別的成員可用來取代父類別中不適用的成員,子類別覆寫父類別的成員時,子類別與父類別的成員必須接受相同個數的參數與相同的資料型別。也就是子類別重新定義父類別的"同名同參數"方法。
如果子類別想要重新定義父類別的方法或屬性(覆寫),首先必須將父類別的方法宣告為virtual,表示父類別允許被子類別的同名的方法覆蓋;而子類別要覆蓋父類別同名稱的方法,必須將子類別的方法宣告為override(覆寫),表示要重新定義父類別的方法。
留言
張貼留言