c#基礎學習之多態(tài)
最近在看一本書《你必須知道的.Net》,書涵蓋的內容比較多,對于c#,.Net平臺以往所學的零散東西有了慢慢的總結和新的認識。把一些基礎的東西記錄于此。
先說說多態(tài)吧:
1.基類繼承式多態(tài)
如書中所說,基類繼承式多態(tài)的關鍵是繼承體系的設計與實現。書中舉了個簡單的列子
Files myFile=new WORDFile();
myFile.open();
myFile是一個父類Files變量,保持了指向子類WORDFile實例的引用,然后調用一個虛方法Open,具體的調用則決定于運行時而非編譯時。從設計模式的角度看,基類繼承式多態(tài)體現了一種IS-A方式,例如WORDFile IS-A Files就體現在這種繼承關系中。
2.接口實現式多態(tài)
區(qū)別于基類的繼承方式,這種多態(tài)通過實現接口的方法約定形成繼承體系,具有更高的靈活性。從設計模式的角度來看,接口實現多態(tài)體現了一種CAN-DO關系。上述的文件加載器也可以這樣實現
IFileOpen myFile=new WORDFile();
myFile.open();
多態(tài)的運行機制:
從技術實現角度看,是.NET的動態(tài)綁定機制成就了面向對象的多態(tài)特性。靜態(tài)綁定在編譯期就可以確定關聯(lián),一般是以方法重載來實現的;動態(tài)綁定則在運行期通過檢查虛擬方法表來確定動態(tài)關聯(lián)覆寫的方法,一般以繼承和虛方法實現。
相關文章
使用C#開源文件實時監(jiān)控工具Tail&TailUI介紹
本篇文章小編為大家介紹,使用C#開源文件實時監(jiān)控工具Tail&TailUI介紹。需要的朋友參考下2013-04-04

