參考網址: https://dotblogs.com.tw/ace_dream/2016/01/10/oop1 物件導向的三大特性: 封裝:(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)也可以建立...