淺析概括VB.NET抽象類
編程的人都喜歡用接口,因為它可以實現(xiàn)若耦合,讓我們的一個項目的各個模塊更獨立,下面我們就簡單的分析一下關(guān)于VB.NET抽象類與接口方面的知識吧。抽象類的定義與非抽象類的定義沒什么兩樣. 抽象類包含了從其它類承繼而來的屬性及方法等等.但是,在抽象類中定義的類成員(屬性及方法)是如何與衍生類中的定義元素產(chǎn)生聯(lián)系的呢?在此并沒有復(fù)雜的規(guī)則,但你作出的決定是與你所擁有的類的性能及它將衍生出來的 類所密切相關(guān)。
#T#如果你熟悉接口的相關(guān)知識,你會認為抽象類與它是如此相似。事實上只是一部份類似。定義僅含有抽象成員的抽象類基本上是與接口的定義相同的,因為你已經(jīng)規(guī)定衍生類必須執(zhí)行某個具有專用符號的成員。另外,抽象類具有其它的功能,是接口無法實現(xiàn)的,--尤其是在定義非抽象類成員的基本功能薄?BR>
當你在認為抽象類或是接口都能如常運作時,請謹記如下幾點:
除了從一個類(抽象或非抽象) 派生出來,一個衍生類可以執(zhí)行多個接口。
從抽象類派生出來的子類同樣能夠執(zhí)行一個或多個接口,這要依你的項目而定,你可以只用一個抽象類或多個接口,或者抽象類和接口混合使用。VB和.NET 在這項工作上提供了非常大的靈活性.因此你可以通過不同的方式來達到你想要的結(jié)果.底線是一些項目必須是通過抽象類來實現(xiàn).VB.NET抽象類也許會被認為是一種非常專業(yè)的編程方法.它可幫程序員減少工作量并且可以生成更簡便功能更強大的程序.
實際操作中使用VB.NET抽象類
設(shè)想一下你正在為一家大公司開發(fā)一個新的員工數(shù)據(jù)庫.你的工作就是監(jiān)督類的執(zhí)行,使雇員的基本情況與管理部門的要求相吻合,同樣, 在區(qū)分公司分支機構(gòu)的要求時也提供更大的便利.
基本要求如下:
抽象類里有姓名,雇用時間等屬性,這些屬性不會被重載.
因為大多數(shù)雇員來自美國,因此在抽象類里執(zhí)行退休ID,以運行社會保障號碼.國外分公司將會利用不同的方式來鑒別雇員的退休ID,因此該屬性會在衍生類里重載,以便單個分支機構(gòu)分別執(zhí)行.
名稱為補償金的方法不會引起爭議,然后會返回一個含有雇員補償金細節(jié)的類型對象.因為不同分公司都規(guī)定不同的補償金,薪金,傭金,紅利等,因此靈活的執(zhí)行這些對象是很有必要的,由此會產(chǎn)生一個抽象方法.
由此而產(chǎn)生的抽象類的代碼,稱為EmployeeBase,會在第一欄里顯示。
位于法國的分公司的程序員用EmployeeBase類作為EmployeeFrance類的基類,與當?shù)毓蛦T記錄軟件合作使用。因此,衍生類需要承繼名稱及雇用日期等字段。更多的是,在EmployeeBase 類中的RetirementID成份適合運用在法國,因此,新類不會重載該成份。程序員做的所有這些工作是為了執(zhí)行abstract Compensation member 的重載。
但是在英國, RetirementID 屬性不適用于該地,因此衍生類將會重載該成員,同樣的也會重載Compensation 成員。