【VB.NET】VB.NET面向对象技术问题的解答
重載和重寫有什么區別?
答:重載與重寫最重要的區別在于重載要求方法簽名不同,而重寫的方法簽名是相同的。另外,重載在派生類中要使用Overloads關鍵字;重寫在基類中要使用Mustoverride或Overridable關鍵字,在派生類中要使用Overrides關鍵字。
類應該在什么位置創建?
答:根據實際的需要類可以放在任何位置,可以是窗體的類框架內,單獨的模塊文件內,也可以放在單獨的文件中,如果需要創建類庫也可以放在單獨的項目中。
怎樣建立事件源與事件處理過程的關聯?
答:可以通過兩種方式建立這種關聯。一種是使用WithEvents關鍵字聲明對象,然后再使用Handles子句將事件處理過程與事件源相關聯,這種關聯是在設計時確定的;另外一種關聯是使用AddHandler和AddressOf子句,要處理的對象事件放在AddHandler后面,對應的事件處理過程放在AddressOf后面,這種關聯可在程序運行時,動態建立關聯,較為靈活。
與事件源相關聯的事件處理過程的名稱是否必須要與對象的事件名稱保持一致?
答:這不是必須的。實際上只要使用了WithEvents,Handles子句;或者AddHandler,AddressOf子句就可以將任何名稱的過程與事件源相關聯,也就是說事件處理過程本身的名稱并不重要。但是,為了增強可讀性,一般在代碼編輯器中,如果通過選擇對象和事件的方式建立事件源于事件處理過程的關聯時,就會自動保持名稱的一致,把對象名稱和事件名稱中間通過下劃線連接來作為事件處理過程的名稱。
Visual Basic.NET中可以實現多繼承嗎?
答:不可以。Visual Basic.NET不支持多繼承,任何一個類最多只能有一個父類。但是,可以通過接口來實現類似的功能。
只要進行重載就需要添加Overloads關鍵字嗎?
答:不是的。如果在某個類中有關于一個同名方法的重載時可以省略Overloads關鍵字,但是如果在其中一個重載方法中添加了Overloads關鍵字,那么其他的重載方法也必須添加Overloads關鍵字。但是,如果在派生類中重載了基類中的方法時,必須添加Overloads關鍵字。
如何在派生類中調用基類中的方法?
答:要想在派生類中調用基類中的方法,就需要使用MyBase關鍵字。通過“MyBase.”加對應的方法名稱及所需參數即可。
如果函數過程只是返回值類型不同,能夠進行重載嗎?
答:不能。方法能否被重載只取決于參數的類型、數量和順序上是否存在差異。如果存在不同,就可以進行重載;否則,不可以進行重載。它與是否方法具有返回值毫無關系,所以僅僅依靠返回值類型的不同來進行重載是不能實現的。
哪種實現多態的方式相對而言不是很理想,最好少用?
答:相對而言,后期綁定的方式實現多態的性能會差一些,因為它需要在執行過程中將Object類型的對象轉換為特定的類型對象,會多消耗時間;另外如果在執行過程中指定的對象并不是有效的對象時,就會發生異常。因此,如果有其他的替代方法,最好不要采用后期綁定的方式實現多態。
為了共享某個類的某些方法、屬性或事件,就可以使用繼承嗎?
答:不一定。是否使用繼承與兩個類的關系有關。如果其中一個類是另一個類的進一步的特殊化或者說一個類可以作為另一個類的子類,在原有類的繼承上又有了自己的一些不同之處時,可以使用繼承來共享某些方法、屬性或事件。如果不滿足這個關系,又想進行共享的話,最好采用接口來實現。
總結
以上是生活随笔為你收集整理的【VB.NET】VB.NET面向对象技术问题的解答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解读Mybatis数据库开发框架
- 下一篇: 【VB.NET】VB.NET文件问题的解