執行個體名
is 類名-->判斷執行個體是否是 類傳回值bool a
is Person 判斷a是否為Person類型
格式化代碼Ctrl+K+D
虛方法Virtual關鍵字,一個方法變為虛方法,在子類中便可以被重寫,如果子類要重寫用關鍵字override,調用子類對象有重寫直接調用重寫的方法,沒重寫直接調用父類的方法,這就是多态的展現
實作多态 父類名
執行個體名=new 子類名(); 父類類型指向子類類型
string str=new
string(char[]);
調用靜态方法直接類名調用,不能通過對象調用,靜态成員無需執行個體化
靜态成員隻有在程式退出時才釋放資源,是以在程式運作時一直共享資料
靜态類不能被執行個體化,是以根據需要來決定類是否定義為靜态類
一般情況當一個類是工具類就定義為靜态類,讓使用者調用友善,不需要直接執行個體化對象,并且靜态類中不能定義非static變量屬性
當類中隻有部分成員或函數隻能将全局的定義為static,需要執行個體化且不同的話之定義一部分為靜态
靜态類不能被繼承,靜态類程式隻有程式退出時才釋放資源,是以盡量定義靜态方法而不去定義靜态變量,靜态屬性
靜态類的構造函數隻能在第一次用靜态類執行之前調用一次,以後都不在調用
關鍵件sealed密封類不能被繼承,abstract抽象類不能被是執行個體化
裡氏替換原則:父類替換子類 Person
p=new Chinese() 父類指向子類
繼承一般使用原則,把子類當成父類來看,當需要一個父類對象可以使用子類對象代替,當需要一個子類對象給父類對象時錯誤的
程式的開放封閉原則:可以擴充,但是對修改封閉---->多态
父類對象
as 子類 父類轉換為子類,不能轉換則傳回null
GetType()擷取對象類型,GetType().BaseType擷取類型的父類類型,GetType()是通過反射實作的費資源
抽象方法不能有任何實作方法體
abstract,而且必須在抽象類中,父類的抽象成員子類繼承必須重寫,除了子類也是抽象類
抽象類不能被執行個體化,抽象類的作用就是為了讓其他類繼承
抽象類不能執行個體化,但是可以指派為null