ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:77KB ,
资源ID:3099426      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3099426.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于.NET 4面向对象编程高级主题(一):类的继承与方法重写.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于.NET 4面向对象编程高级主题(一):类的继承与方法重写.doc

1、基于.NET 4 面向对象编程高级主题 (一)类的继承与方法重写继承(Inheritance )Visual Basic.NET 支持“继承”,这是一种定义作为派生类(Derivation Class)基础的类的能力。派生类继承并可扩展基类的属性(Property)、方法(Method)和事件(Event)。派生类还可以用新的实现重写继承的方法。默认情况下,用 Visual Basic .NET创建的所有类都是可继承的。继承使您得以只编写和调试类一次,然后将该代码作为新类的基础不断重复使用。继承还使您得以使用基于继承的多态性(Polymorphism),这是一种定义如下类的能力:这些类可由客户

2、端代码在运行时交换使用,但具有功能不同而名称相同的方法或属性。通俗的说,继承就是子承父业,假设定义一个 Father类作为基类(父类),然后定义一个子类(派生类)Son,在 Son这个类中添加以下突出显示的代码:(Code 1)Public Class SonInherits FatherEnd Class 这时候,就会发现 Son是从父类 Father里面继承下来的,假设 Father有 Sport,EditProgram 这两个方法,以及 Tall这个属性,那么子类同样包含了父类所具备的 Sport,EditProgram 这两个方法,以及Tall这个属性,但是这些方法和属性可以在子类中进

3、行重写(Overridable)我们在设计 Windows应用程序(Application)窗体的时候,Visual Studio会自动创建一个空白的窗体,而这个窗体则是从 Form类中继承下来的,如果打开名字为 Form1的空白 Windows窗体设计视图的Design文件,则会发现以下突出显示的代码:(Code 2)_Partial Class Form1Inherits System.Windows.Forms.Form_Protected Overrides Sub Dispose(ByVal disposing As Boolean)TryIf disposing AndAlso c

4、omponents IsNot Nothing Thencomponents.Dispose()End IfFinallyMyBase.Dispose(disposing)End TryEnd SubPrivate components As System.ComponentModel.IContainer_Private Sub InitializeComponent()components = New System.ComponentModel.Container()Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.FontMe.T

5、ext = “Form1“End SubEnd Class重写(Overridable )通常,派生类继承基类的方法,因此在调用对象(Object)继承方法的时候, 调用和执行的是基类的实现。但是,有时需要对派生类中的继承方法有不同的实现。例如,假设动物类存在“跑”的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要“重新编写”基类中的方法。“重写”基类方法就是修改它的实现或者说在派生类中重新编写。重写方法通常使用 Overridable关键字来修饰并说明,指定属性或过程可由派生类中同名的属性或过程进行重写,比如说存在两个类 Father和 Son,

6、Son 继承于 Father,Father 类中存在一个方法 Sport,其详细代码突出显示如下:(Code 3)Public Class FatherPublic Function Sport() As StringReturn “I love sports!“End FunctionEnd Class现在从 Father类继承下来的 Son中,我们假设 Son不喜欢 Sport,则我们可以修改这个从 Father类继承的方法:(Code 4)Public Class SonInherits FatherPublic Overridable Function Sport() As Strin

7、gReturn “I hate sports!“End FunctionEnd Class当然,我们也可以重写系统方法,通常,系统方法(System Method)是受保护(Protected)的,这时,我们就要添加 Protected修饰符进行声明。假设我们要重写 RichTextBox控件的 Copy()这个方法,则重写方法的代码如下:(Code 5)Protected Overridable Sub Copy(ByVal strValue As String)My.Computer.Clipboard.SetText(strValue)End Sub抽象类(Abstract Class)

8、与抽象方法( Abstract Method)抽象类必须被继承但是不能被实例化(Instantiation)。比如说,人类会说话,会思考,会制作和使用工具,而这些就是人类这个类的基本成员,但是人类无法详细描述一个单一的人或实体,但是,从继承于人类这个类的美国人,中国人和日本人则可以尽量详细的描述一个人或实体,那么在这里,人类就充当了一个抽象类,则美国人,中国人和日本人就是从人类这个抽象类继承下来的子类。如下图:下列代码演示了如何定义抽象类:(Code 6)Public MustInherit Class HumanPublic MustOverride Function SayHello()

9、As ObjectPublic MustOverride Function Wolk() As ObjectEnd Class 抽象类具有以下特征:1、抽象类不可以直接调用 New指令进行实例化。2、抽象类必须要通过继承才可以使用其功能。3、抽象类中可以声明抽象方法。4、继承抽象类的子类,必须要实现所有的抽象方法。抽象方法是必须被继承的子类重写但是在重写之前不能定义方法体(The body of a method),在父类中必须用 MustOverrides修饰符进行声明。例如:(Code 7)Public MustOverride Function SayHello() As Object声

10、明抽象方法要注意以下几点:1、抽象方法只能声明在抽象类中。2、抽象方法不能用 Private修饰。3、继承抽象类的子类,必须要实现所有的抽象方法。4、若是抽象类的子类未实现所有的抽象方法,则该子类就必须声明为抽象类。现在,我们来通过抽象类和抽象方法来做一个基于 Code 6的综合实例, Code 6的代码在这里省略,则其他代码如下:(Code 8)(Code 8.1)Public Class AmericanInherits HumanPublic Overrides Function SayHello() As ObjectReturn “Hello“End FunctionPublic O

11、verrides Function Wolk() As ObjectReturn “My native language is English“End FunctionEnd Class(Code 8.2)Public Class ChineseInherits HumanPublic Overrides Function SayHello() As ObjectReturn “你好“End FunctionPublic Overrides Function Wolk() As ObjectReturn “我的母语是汉语 “End FunctionEnd Class(Code 8.3) Pub

12、lic Class JapaneseInherits HumanPublic Overrides Function SayHello() As ObjectReturn “ “End FunctionPublic Overrides Function Wolk() As ObjectReturn “私母語日本語 “End FunctionEnd Class密封类(Sealed Class)和密封方法(Sealed Method)密封类是不可以被继承的且不能被实例化的类,比如说:(Code 9)Public NotInherit Class Chinese类成员声明End Class 密封方法是不可以继续被重写的方法,比如说:(Code 10)Public NotOverridable Function Walk() As Object方法体以及内部成员定义End Function 2014-03-31

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。