物件導向的三大特性:封裝、繼承、多型。
其目的就是為了讓程式能夠:提高彈性、減少重複 以及 易於維護
封裝(Encapsulation)
將一個或一組的業務邏輯包裝在一起,限制細節的存取並提供彈性的接口,讓程式可以被安全的呼叫或引用
微觀來看,可以小至:設定變數的公有私有、私有變數需要用公用函數修改。
宏觀來看,
人(物件)有很複雜構造及身體相關的各種數值,但是皆被封裝起來,無法直接修改。
例如:想要問一個人的體重(屬性),如果他不想直接告訴你體重(設定為private),則無法直接得知。
需要透過"使用體重機量體重"(方法) 或 "查看健康檢查結果文件"(方法) ,才能得到。
而體重也無法直接修改,必須透過"飲食"(方法) 或 "運動"(方法) 來變化體重的值。
繼承(Inheritance)
概述
衍生類別(簡稱:子類別)"繼承"基底類別(簡稱:父類別)後,可以使用父類別所公開的屬性或方法。使得有相同基本屬性的類別可以透過繼承的方式重複利用,而不需要寫過多重複的程式碼。而子類別除了使用父類別的屬性外,也可以擁有各自的屬性或方法,稱為擴增。
舉例
多型(Polymorphism)
概述
(待補充)
舉例
(待補充)
參考文件
https://medium.com/@totoroLiu/%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91-object-oriented-programming-%E6%A6%82%E5%BF%B5-5f205d437fd6
http://notepad.yehyeh.net/Content/CSharp/CH01/03ObjectOrient/3OOCharacter/index.php