什麼是OOP
物件導向編程(Object-oriented programming),縮寫OOP。顧名思義這種編程方式就是將程式封裝成一種物件,在使用上就會提高軟體的重用性、靈活性和擴充性。而通常一個物件(object)指的就是一個類別(class)的實例,類別可以提供公開的欄位(field)、屬性(attribute)、方法(method),使其他的程式碼可以呼叫使用,而我們的專案程式就是由物件們產生關聯而成的。
在OOP導向的程式語言(如: C#、Java等),強調著封裝、繼承、多型,就如同一場遊戲裡的基本規則,是如此重要的存在。
OOP特性
封裝(Encapsulation): 所有物件都是類別的實體化,而這些類別裡往往包含著欄位、屬性、方法。然而,我們在使用類別時,無須明白類別內部的邏輯以及所有的方法,就能使用。所以在類別裡,我們使用了如: private、protected、public的型別來修飾方法。private的方法只在這個類別裡所使用;protected及public的方法則可在此類別的實體化時被使用。這就是所謂的封裝,將多餘的資訊藏起來,而外部能接收少部分類別的資訊(通常為public屬性、public方法)。
繼承(Inheritance): 在繼承這件事上,我們將較為基本的類別稱為父類別(parent class,如: 衣服);而在較上層繼承父類別的稱之為子類別(sub class,如: 襯衫)。假設父類別"衣服"定義了尺寸,那麼繼承了的子類別"襯衫"除了保有對尺寸的定義以外,更添加了顏色的定義。
多型(Polymorphism): 在此包含了多載(Overloading)以及覆寫(Overriding)的兩種形式。多載指的是在同一類別下,有著相同名稱的方法,卻有不同的引數及方法內的邏輯;而覆寫則是指子類別去覆寫(Overriding)了父類別的virtual或abstract方法。