首先明白这两个词的基本意思:顾名思义Overrides重写,Overloads重载
方法的重写和重载是面向对象中多态的两种表现形式,不同的是重写是父类和子类之间的多态性,不同的子类继承一个基类,以实现自己不同的业务逻辑,这要求子类的方法名称及参数必须与父类完全一致。 重载是一个类中的多态性,重载多个名称相同的方法,相同的方法名,不同的实现。
关键字
重写:
在 VB.NET 中,重写汲及到的关键字有:
OverRidable: 在父类中声明的可以在子类中重写的方法。
OverRides: 在子类中声明的要重写父亲中可重写的方法。
MustOverRide: 在父类中,表示这个方法必须在子类中重写。此时,该类必须声明为抽象类。
NotOverridable: 如果当前类还有子类,那么,在其子类中,该方法不允许被重写。
重载:
在 VB.NET 中,重载用到的关键是 OverLoads。请看如下代码:
Public Sub ShowMySelf(ByVal Name As String)
Public Sub ShowMySelf(ByVal Name As String, ByVal Age As Integer)
Public Sub ShowMySelf(ByVal Name As String, ByVal Age As Integer, ByVal Sex AsString)
Public Overloads Function GetMyInfo() As String
Public Overloads Function GetMyInfo(ByVal MyID As Integer) As String
对于重载1. 对于在同一类当中,一组名称相同的方法或函数重载时,可以加关键字 OverLoads 或者不加。但如果其中有一个方法加上,那同组其它方法也必须加该关键字。
2. 如果该方法是重载父类中的方法。那么必须加OverLoads 关键字。
3. 如果两个同名函数仅返回类型不相同,则它们不能重载,即必须在参数上有所不同。