[C# - , CSharp - ] 物件導向三大特性

文章推薦指數: 80 %
投票人數:10人

物件與類別- 物件導向三大特性:封裝(Encapsulation)、繼承(Inheritance)、多型(Polymorphism)的介紹. [C#,CSharp]物件導向三大特性 封裝(Encapsulation) 抽象:對一件事物只瞭解其外在,而不需瞭解其內部構造或實作方法 抽象化(Abstraction):類別的內部成員可以封裝起來,讓別人不知道其如何實作,只能透過它提供的公開類別成員來進行操作 封裝的觀念和抽象化類似,但多了安全的概念,使用者只能使用公開的屬性或方法 不可以直接存取類別私有的屬性或方法 要存取類別私有的屬性或方法,需透過類別公開的方法,而設計師可在這些公開的方法中先做安全性檢查 例如一台電視,只要能看就好,使用者不需知道其構造和原理,只能透過電視的面板或搖控器來進行操作 如果電視沒有封裝,使用者看電視時會許就得自己把電線找出來接在一起操作複雜且不安全 class電視 { privatevoid播放(){ XXXXXX } publicvoid電源(){播放();} publicvoid選台(){播放();} } class使用者 { 電視tv=new電視(); tv.電源(); } Δ回到最上方 繼承(Inheritance) 類別可以繼承另一個類別的屬性和方法 例如要畫一張和原有的設計圖很像的新設計圖時,可以用本來的設計圖為基礎開始畫 C#中使用:來代表繼承,後面接要繼承那個類別 class子類別:父類別{...} 子類別可以繼承父類別的能力,直接使用父類別非私有的屬性和方法 子類別只能繼承一個父類別 父類別的方法若宣告為虛擬(virtual),則表示該方法可以被子類別覆寫(非必需) 父類別的方法若宣告為抽象(abstract),則表示該子類別一定要覆寫該方法(子類別為抽象類別除外) 類別若包含抽象成員,則該類別必需宣告為抽象類別 父類別又叫做基底類別(BaseClass) 子類別又叫做衍生類別(DerivedClass) class父類別 { 類別A屬性1; 類別B屬性2; publicvoid方法1(){} virtualvoid方法2(){} } class子類別:父類別 { 類別C屬性3; publicoverridevoid方法2(){} publicvoid方法3(){} } 若類別宣告為密封(sealed),則不可以被繼承(即不可為其它類別的父類別) class父類別{} sealedclass子類別:父類別{}//子類別不可被繼承 若方法或屬性宣告為密封(sealed),則不可以被子類別覆寫 Δ回到最上方 多型(Polymorphism) 多型也叫同名異式,即使用一個方法名稱,在不同的條件下可以執行不同的動作 多載(Overloading):多個方法擁有相同名稱,不同參數,傳入不同參數時,會執行對應的方法 class類別 { publicvoid多載方法(){} publicvoid多載方法(inta){} publicvoid多載方法(inta,intb){} } 覆寫(Overriding):子類別重新定義父類別的同名同參數方法 class父類別 { virtualvoid覆寫方法(){} } class子類別:父類別 { publicoverridevoid覆寫方法(){} } Δ回到最上方 Copyright©YehYeh.Allrightsreserved.



請為這篇文章評分?