繼承與接口
概述:了解在Microsoft Visual Basic .NET中的類繼承與接口實現的區別。
目標
研究繼承與接口使用背後的概念
學習何時使用類繼承,何時使用接口實現
要求
為了充分利用本文,讀者必須具備以下基礎:
熟悉Microsoft® Visual Basic® .NET語言
熟悉Microsoft Visual Basic 6.0
基本理解繼承中的術語
目錄
面向對象編程:為什麼編程?
繼承層次
創建和實現接口
比較類繼承與接口實現
對象合成
與 Visual Basic 6.0的區別?
小結
面向對象編程:為什麼麻煩?
只有一小部分Visual Basic 6.0程序員發現他們在構建Visual Basic 6.0窗體時需要創建類模塊,而不是使用自動創建的窗體。另外,大多數的確在Visual Basic 6.0中創建過類模塊的程序員,創建創建類模塊的原因,只是因為要構建ActiveX®控件,並且不得不使用類模塊才能做到。
在Visual Basic .NET中,就象在所有其它語言中一樣,面向對象編程(OOP)不是一個選擇,而是一種需求。每段代碼都是某種類型,如類、接口、結構(結構是值類型,類似於Visual Basic 6.0中的用戶自定義類型),或枚舉值的一部分。甚至在Visual Basic .NET中看上去獨立的過程實際上也是作為隱藏類的共享方法實現的。
為何OOP如此強大?為什麼微軟一直要求大家學習用OOP在Visual Basic .NET中編程?
處理復雜性與變化
OOP解決兩個普遍的軟件開發問題:處理復雜性和處理變化。利用OOP就容易設計和使用復雜的軟件系統,並且易於修改這些系統而無需打亂它們。
Visual Basic 6.0程序員需要用ADO或DAO對象模型獲得和操作數據,設想,如果每個操作都必須調用獨立的函數,而不是使用對象(如記錄集)的方法或屬性,完成這樣的工作會有多麼艱巨。例如,如果要用ADO或DAO向列表框中裝入數據,大約要編寫10行代碼。而直接使用ODBC API函數,大約要編寫50行代碼!可以看到,OOP方法更容易實現。
再例如,考慮微軟Windows® API。如果要花大量時間調用Windows® API或使用其它面向過程的APIs,就會發現,為一個任務要調用哪個函數或過程,是多麼容易出錯、多麼難記。因此,通過創建相關對象,把問題模型化,對程序員來說,要比使用一長列的過程或函數要友好的多。
編寫和調試代碼是困難的,但大多數程序員喜歡跟蹤問題,設計也一種靈活方式解決,然後“玩弄”代碼,直到一切都滿足了客戶需求。這是有趣的人的一部分,但並不是事情的結局。所有程序員都害怕的一件事是:不得不研究其他人編寫的代碼(或他們在很久以前剛開始編寫代碼時所寫的代碼),不得不設計也程序各個部分如何搭配,如何進行修改以滿足新需求——所有這些都必須不能引起意想不到的後果。不幸的是,在大多數系統生命周期中,維護代碼所消耗程序員的時間,比創建這些代碼的時間還要多,這就是這些系統的結局。