Home
R
Cancel

[C# 筆記] 多重繼承 vs 多重實現

C# 多重繼承? C# 不能多重繼承,但可以通過接口(介面)來模仿多重繼承的實現方式,同時還可以避免多重繼承產生的問題。 public class UIText : UIBase, IDragable, ICopyable { } public interface IDragable { void Drag(); } public interface ICopyable { ...

[C# 筆記] Interface 什麼是接口(介面)?

清掃車-全自動掃地 繼承:繼承自拖拉機,實現了掃地接口(介面) 封裝:要需知道如何運作、開動即可 多態:平時掃地,天然當風扇 多線程:10把掃把協同工作 低耦合:掃把可以更換為拖把 組件化:每個配件都可以替換 代碼托管:無需管理垃圾,掃至路邊即可 什麼是接口(介面)? 接口(介面)與抽象類類似,僅作功能聲明,不做程式碼實現的語法結構 只需把 c...

[C# 筆記] Sealed 密封類 vs 密封成員

密封類 vs 密封成員 使用 sealed 修飾符 防止類繼承、防止派生類重寫 sealed 修飾符不僅可以用來修飾class,同樣也可以修飾類成員 它可以防止當前類被繼承,或者防止派生類(子類)在繼承過程中重寫某一個方法,sealed 修飾符不僅可以用來修飾class,同樣也可以修飾類的成員。 如果sealed關鍵字使用在 class 上,這個類將無法被別人繼承...

[C# 筆記] Abstract 抽象類與抽象成員

只有抽象概念,就需要使用abstract 關鍵詞,代表的是,我們不需要在基類(父類)中實現這個方法。 而具體的實現,只能在派生類(子類)中處理。 abstract 關鍵詞 聲明修飾符 可以修飾類、方法、屬性 只有聲明、沒有邏輯,不會被實現 語法 注意:如果我們給一個類的方法或者屬性加上了 abstract 這個關鍵詞,整個類也必須要使用 abstract。 如果我們使...

[C# 筆記] 什麼是多態(多型)?

什麼是多態(多型)? 對象(物件)的向上轉型 Circle 繼承於 Shape,在完成circle 實體化之後,通過向上轉型,我們可以把 circle 類轉化為 shape類,其實這就是「多態(多型)」最簡單的例子。 Circle circle = new Circle(); Shape shape = circle; 內存一致、數據一樣,但表現型態多種多樣 不管是 cir...

[C# 筆記] 虛方法(Virtual) vs 方法重寫(Override)

父類/基類 子類/派生類/衍生類 方法重寫 Override 在 class 繼承過程中,有時候我們需要修改基類的某些方法的執行邏輯,這個時候我們就需要使用方法重寫 Override 這個關鍵詞了,使Override 以後,可以對基類的某些指定的方法進行重新實現,重寫這些方法的內部程式碼邏輯。 修改基類的某些方法的執行邏輯 使用 Override 關鍵詞 範例 例如:Sh...

[C# 筆記] 裝箱(Boxing) vs 拆箱(Unboxing)

參考型別/引用類型 實值型別/值類型 Stack(棧/堆疊) Heap(堆/堆積) 內存/記憶體/RAM 在學習裝箱vs拆箱之前,首先要先了解一下基本概念。 在C#中,所有的數據類型都會被分為兩種:「值類型」和「引用類型」。 值類型 vs 引用類型 程式在執行過程中,會把內存劃分為若干個區塊,最常見到的,也最重要的兩個區塊就是:「Stack(棧/堆疊)」和「Heap(堆/堆積)」。...

[C# 筆記] 類之間的轉換(向上轉型 vs 向下轉型)

基類(父類) 派生類(子類) 當我們有父類、子類的時候,有時候會需要對這兩個類進行類型的轉換,類之間的轉換,就是這節課的學習任務。 明確一下概念 向上轉型(upcasting):把一個派生類(子類)類型轉換為他的基類(父類) 向下轉型(downcasting):把一個基類(父類)轉換為他的某個派生類(子類) 向上轉型 vs 向下轉型 向上轉型:在轉換過程中,不需要做...

[C# 筆記] 構造方法繼承的要點

父類/基類 子類/派生類 在初始化時,基類構造方法總是會首先運行 基類的構造方法不會被繼承,在派生類需要重新定義 舉例1:在初始化時,基類構造方法總是會首先運行 先創建一個Staff類,構造函數什麼都不做,只輸出一句話「員工類初始化」 再創建一個Manager類,繼承Staff類,構造函數什麼都不做,只輸出一句話「經理類初始化」 //父類/基類 public ...

[C# 筆記] 用戶管理(重構)

用戶登入過程 重構用戶登入: 用戶系統-用戶登入 User 菜單系統-顯示菜單 Menu 控制系統-流程控制 CMSController 用戶系統-用戶登入 User 新增一個User class,把登入的部分放到 User class 中 還需要一個 isUserLogin變量 public class User { public bool isU...