欢迎来到天天文库
浏览记录
ID:13546876
大小:77.00 KB
页数:6页
时间:2018-07-23
《基于.net 4面向对象编程高级主题(一):类的继承与方法重写》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于.NET4面向对象编程高级主题(一)类的继承与方法重写继承(Inheritance)VisualBasic.NET支持“继承”,这是一种定义作为派生类(DerivationClass)基础的类的能力。派生类继承并可扩展基类的属性(Property)、方法(Method)和事件(Event)。派生类还可以用新的实现重写继承的方法。默认情况下,用VisualBasic.NET创建的所有类都是可继承的。继承使您得以只编写和调试类一次,然后将该代码作为新类的基础不断重复使用。继承还使您得以使用基于继承的多态性(Polymorphism),这是一种定义如下类
2、的能力:这些类可由客户端代码在运行时交换使用,但具有功能不同而名称相同的方法或属性。 通俗的说,继承就是子承父业,假设定义一个Father类作为基类(父类),然后定义一个子类(派生类)Son,在Son这个类中添加以下突出显示的代码:(Code1)PublicClassSon InheritsFatherEndClass 这时候,就会发现Son是从父类Father里面继承下来的,假设Father有Sport,EditProgram这两个方法,以及Tall这个属性,那么子类同样包含了父类所具备的Sport,EditProgram这两个方法,以及Tall这
3、个属性,但是这些方法和属性可以在子类中进行重写(Overridable)我们在设计Windows应用程序(Application)窗体的时候,VisualStudio会自动创建一个空白的窗体,而这个窗体则是从Form类中继承下来的,如果打开名字为Form1的空白Windows窗体设计视图的Design文件,则会发现以下突出显示的代码:(Code2)_PartialClassForm1 InheritsSystem.Wi
4、ndows.Forms.Form _ ProtectedOverridesSubDispose(ByValdisposingAsBoolean) Try IfdisposingAndAlsocomponentsIsNotNothingThen components.Dispose() EndIf Finally MyBase.Dispose(disposing) EndTry EndSub Priva
5、tecomponentsAsSystem.ComponentModel.IContainer _ PrivateSubInitializeComponent() components=NewSystem.ComponentModel.Container() Me.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font Me.Text="Form1" EndSubEndClass重写(Overri
6、dable)通常,派生类继承基类的方法,因此在调用对象(Object)继承方法的时候,调用和执行的是基类的实现。但是,有时需要对派生类中的继承方法有不同的实现。例如,假设动物类存在“跑”的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要“重新编写”基类中的方法。“重写”基类方法就是修改它的实现或者说在派生类中重新编写。重写方法通常使用Overridable关键字来修饰并说明,指定属性或过程可由派生类中同名的属性或过程进行重写,比如说存在两个类Father和Son,Son继承于Father,Father类中存
7、在一个方法Sport,其详细代码突出显示如下:(Code3)PublicClassFather …… PublicFunctionSport()AsString Return"Ilovesports!" EndFunction ……EndClass现在从Father类继承下来的Son中,我们假设Son不喜欢Sport,则我们可以修改这个从Father类继承的方法:(Code4)PublicClassSon InheritsFather …… PublicOverridable FunctionSport()AsString
8、 Return"Ihatesports!" EndFunction ……EndCla
此文档下载收益归作者所有