新聞中心
vb.net 有沒(méi)有重構(gòu)? 重構(gòu)與重寫、重載的區(qū)別是什么?請(qǐng)舉構(gòu)。
重構(gòu)是一種程序結(jié)構(gòu)上的改動(dòng),例如添加刪除方法、改變參數(shù)等。
成都創(chuàng)新互聯(lián)10多年成都定制網(wǎng)頁(yè)設(shè)計(jì)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都定制網(wǎng)頁(yè)設(shè)計(jì)及推廣,對(duì)成都紙箱等多個(gè)方面擁有多年的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
重寫、重載則都是指面向?qū)ο笾械奶摵瘮?shù)的多態(tài)實(shí)現(xiàn)。
.NET2005編程環(huán)境中,有個(gè)菜單功能支持 C# 的重構(gòu)。而vb.net則需要手動(dòng)
vb.net的重寫和重載是什么?
我們都知道,面向?qū)ο笳Z(yǔ)言的三大特征是:封裝、繼承和多態(tài)。而重寫和重載是多態(tài)的兩種表現(xiàn)形式。多態(tài),顧名思義,就是指多種形態(tài)。而重寫和重載正好體現(xiàn)了這一點(diǎn)?,F(xiàn)在我們以 VB.NET 語(yǔ)言來(lái)說(shuō)明兩者的區(qū)別。
重寫是發(fā)生在父類與子類之間的關(guān)系。具體來(lái)講就是子類可以重寫父類的現(xiàn)有的方法。它要求子類的方法名稱及參數(shù)必須與父類完全一致。比如吃飯,父親可以吃兩碗面,孩子同樣也是吃面,卻只能吃一碗。
重載則主要是發(fā)生在同一個(gè)類當(dāng)中的,它通過(guò)多個(gè)名稱相同的方法,但方法參數(shù)不相同,或者方法返回類型不相同來(lái)加以區(qū)別。其中,方法參數(shù)不相同包括以下幾種情況:參數(shù)的個(gè)數(shù)不相同,參數(shù)的類型不相同,參數(shù)的對(duì)應(yīng)位置不相同。需要說(shuō)明的是,重載同樣可以應(yīng)用到父類與子類當(dāng)中。即子類重載了父類的方法。
重寫:
在 VB.NET 中,重寫汲及到的關(guān)鍵字有:
OverRidable: 在父類中聲明的可以在子類中重寫的方法。
OverRides: 在子類中聲明的要重寫父親中可重寫的方法。
MustOverRide: 在父類中,表示這個(gè)方法必須在子類中重寫。此時(shí),該類必須聲明為抽象類。
NotOverridable: 如果當(dāng)前類還有子類,那么,在其子類中,該方法不允許被重寫。
重載:
在 VB.NET 中,重載用到的關(guān)鍵是 OverLoads。
這里需要說(shuō)明幾點(diǎn):
1. 對(duì)于在同一類當(dāng)中,一組名稱相同的方法或函數(shù)重載時(shí),可以加關(guān)鍵字 OverLoads 或者不加。但如果其中有一個(gè)方法加上,那同組其它方法也必須加該關(guān)鍵字。
2. 如果該方法是重載父類中的方法。那么必須加 OverLoads 關(guān)鍵字。
3. 如果兩個(gè)同名函數(shù)僅返回類型不相同,則它們不能重載,即必須在參數(shù)上有所不同。
vb.net中不同的工程怎么調(diào)用重載的方法
同一個(gè)類中多次聲明相同名字的方法,每次聲明時(shí)都是不同的參數(shù)列表。方法重載主要是為了實(shí)現(xiàn)同一個(gè)功能,而使用統(tǒng)一的方法處理不同的數(shù)據(jù)類型。它是多樣性在同一類中的一種表現(xiàn)。而且方法重載時(shí),可以使用不同的作用域關(guān)鍵字比如使用public、或者使用friend。
方法重載必須滿足以下三點(diǎn):
1、方法重載時(shí)需要加入關(guān)鍵字OVERLOADS
2、方法的名稱必須相同。
3、方法的參數(shù)必須不同,這里的不同分三種情況:
a、參數(shù)個(gè)數(shù)不同,類型無(wú)限制;
b、參數(shù)個(gè)數(shù)相同,但是參數(shù)類型不同;
c、參數(shù)個(gè)數(shù)和類型都相同,但是參數(shù)的順序不同
當(dāng)前文章:vb.net重載=,vb函數(shù)重載
本文網(wǎng)址:http://fisionsoft.com.cn/article/phhppd.html