知识大全 一步一步在VB.NET中使用抽象类

Posted

篇首语:得意犹堪夸世俗,诏黄新湿字如鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一步一步在VB.NET中使用抽象类相关的知识,希望对你有一定的参考价值。

一步一步在VB.NET中使用抽象类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  通过VB NET VB程序员终于拥有了全部面向对象的特征 其中之一就是程序员以创建抽象类 虽然抽象类在编程中的作用常被过高估计 但抽象类确实提供了不少开发可行性     一段时间以来 VB程序员都在要求微软向他们提供全面的备受C++及JAVA程序员推崇的面向对象的特性 虽然有少部份与OOP相关的特征已被添加到旧的版本上 但程序员还得等待VB NET 将实际意义上的OOP添加到VB上去 通过OOP你可以创建抽象类 虽然大家都对它寄予了厚望 但令人惭愧的是抽象类仅仅只能给程序员提供更多的开发可行性而已     阅读本文您需要具备一定的面向对象以及VB NET的相关知识     很容易解释什么是抽象类? 抽象类即是不能被实例化的类 而且你不能够在自己的程序里通过这种类来生成一个对象     你也许会认为不能被实例化的类是没多大用处的 事实上 在某些环境下 抽象类是非常有用的 你可以把它作为一个基础类以此为基类创建新的类 在对功能要求不高的环境下生成的类 会向你提供一个规定的启始点 通过这个点你可以推导出非抽象类     在此假设一个要用抽象类的程序设计 假设图形程序提供了大量的drawing类:比如圆 三角 曲线等等 所有这些作drawing类都有某个共同的特性 比如位置 大小 色彩 删除等属性 其它的类成员 比如描绘图形的方法就不同于每个单独的类 因此 这样为利用抽象类创造了一个理想的环境     在抽象类中 你需要定义所有drawing类都需要的全部通用类成员 因为drawing类不响应任何图形 但是当把它作为shape specific drawing类中的base类 你需要确认所有这些非 抽象类拥有最基本的功能      创建抽象类  对抽象类的定义很简单 只要在定义域里加入关键字MustInherit 如     Public MustInherit class MyAbstract class     End class    除开要包含关键字之外 抽象类的定义与非抽象类的定义没什么两样 抽象类包含了从其它类承继而来的属性及方法等等 但是 在抽象类中定义的类成员(属性及方法)是如何与衍生类中的定义元素产生联系的呢?在此并没有复杂的规则 但你作出的决定是与你所拥有的类的性能及它将衍生出来的 类所密切相关      你有三个选择    抽象类中已有的功能比如属性 方法等在衍生类中可以被重载 实现这一功能只要在成员定义中输入Overridable关键字 如     Public Overridable Sub Move(NewX As Integer NewY As Integer)     End Sub     为重载abstract base 类中的成员 衍生类在执行语句中须使用Overrides关键字段 如     Public Overrides Move(NewX As Integer NewY As Integer)     End Sub     抽象类中已有的功能不能在衍生类中重载 即是 衍生类必须使用抽象类定义的成员 如果你在抽象类中不使用任何特殊字段来定义任一成员将会产生该缺省 以下代码定义了抽象类中的Xpos属性 衍生类必须使用该属性 因为该属性不能被重载 如     Public Property XPos() As Integer     End Property    利用MustOverride关键字来定义抽象类成员 该成员可以在衍生类中重载 以下举例说明了衍生类必须执行名为GetObjectAt()的方法     Public MustOverride Function GetObjectAt(X As Integer Y As Integer) As Object    请注意MustOverride成员不需要End Sub 或End Function语句 使用MustOverride最方便的地方在于它不仅规定了成员的名称同样也规定了成员的符号 先前的例子要求任一衍生类都需定义名称为GetObjectAt()的方法 因此会产生两种类型的整型变量以及返回一个类型对象 该方法是在衍生类中的执行是完全根据程序员的指令要求 通过MustOverride字段说明的方法一些时候也被称为abstract 成员   抽象类与接口    如果你熟悉接口的相关知识 你会认为抽象类与它是如此相似 事实上只是一部份类似 定义仅含有抽象成员的抽象类基本上是与接口的定义相同的 因为你已经规定衍生类必须执行某个具有专用符号的成员 另外 抽象类具有其它的功能 是接口无法实现的 尤其是在定义非抽象类成员的基本功能薄?BR>  当你在认为抽象类或是接口都能如常运作时 请谨记如下几点     除了从一个类(抽象或非抽象) 派生出来 一个衍生类可以执行多个接口     从抽象类派生出来的子类同样能够执行一个或多个接口 这要依你的项目而定 你可以只用一个抽象类或多个接口 或者抽象类和接口混合使用 VB和 NET在这项工作上提供了非常大的灵活性 因此你可以通过不同的方式来达到你想要的结果 底线是一些项目必须是通过抽象类来实现 抽象类也许会被认为是一种非常专业的编程方法 它可帮程序员减少工作量并且可以生成更简便功能更强大的程序      实际操作中使用抽象类  设想一下你正在为一家大公司开发一个新的员工数据库 你的工作就是监督类的执行 使雇员的基本情况与管理部门的要求相吻合 同样 在区分公司分支机构的要求时也提供更大的便利      基本要求如下:   抽象类里有姓名 雇用时间等属性 这些属性不会被重载     因为大多数雇员来自美国 因此在抽象类里执行退休ID 以运行社会保障号码 国外分公司将会利用不同的方式来鉴别雇员的退休ID 因此该属性会在衍生类里重载 以便单个分支机构分别执行     名称为补偿金的方法不会引起争议 然后会返回一个含有雇员补偿金细节的类型对象 因为不同分公司都规定不同的补偿金 薪金 佣金 红利等 因此灵活的执行这些对象是很有必要的 由此会产生一个抽象方法   由此而产生的抽象类的代码 称为EmployeeBase 会在第一栏里显示     位于法国的分公司的程序员用EmployeeBase类作为EmployeeFrance类的基类 与当地雇员记录软件合作使用 因此 衍生类需要承继名称及雇用日期等字段 更多的是 在EmployeeBase 类中的RetirementID成份适合运用在法国 因此 新类不会重载该成份 程序员做的所有这些工作是为了执行abstract Compensation member 的重载     但是在英国 RetirementID 属性不适用于该地 因此衍生类将会重载该成员 同样的也会重载Compensation 成员 cha138/Article/program/net/201311/13310

相关参考

知识大全 一步一步创建Visual Basic .NET 控件

一步一步创建VisualBasic.NET控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我从来

知识大全 一步一步教你用JS和INF编辑注册表

一步一步教你用JS和INF编辑注册表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JScrip

知识大全 刚成年,想拿自己身份证办网银,就是能在淘宝上买东西的。把具体方法告诉我,一步一步教我,谢谢啊

刚成年,想拿自己身份证办网银,就是能在淘宝上买东西的。把具体方法告诉我,一步一步教我,谢谢啊!--、十八周岁了?有卡还是无卡?有卡直接先填办理网银的单子---如果没有卡的话,带上你的身份证---到银行

“……蜗牛背着那重重的壳呀,一步一步地往上爬……等我爬上它就成熟了。”下列谚语与此歌反映的哲理相一致的有__。①水

“……蜗牛背着那重重的壳呀,一步一步地往上爬……等我爬上它就成熟了。”下列谚语与此歌反映的哲理相一致的有_____。①水滴石穿,集腋成裘②知己知彼,百战不殆③千里之堤,溃于蚁穴④不入虎穴,焉得虎子A、

知识大全 visitor模式概念——visitor模式进一步

  一访问者模式的角色抽象访问者声明一个或者多个访问操作形成所有的具体元素都要实现的接口具体访问者实现抽象访问者所声明的接口抽象节点声明一个接受操作接受一个访问者对象作为参量具体节点实现了抽象元素所规

知识大全 网站怎么去引流

网站怎么去引流首先,你要确定你这个网站的卖点是什么,然后所属行业是什么?然后根据具体情况找到大型门户类网站对应的版块,去发布帖子或者文敞矗搬匪植睹邦色鲍姬章,然后建立自己的贴吧、问答、博客等,一步一步

知识大全 一个基于API的VB.net串口通讯类

一个基于API的VB.net串口通讯类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  的串口通讯

知识大全 VB.NET制作Code39的规律类的方法

VB.NET制作Code39的规律类的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Imp

知识大全 用VB.NET为智能设备编写半自动初始化类

用VB.NET为智能设备编写半自动初始化类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言  

知识大全 华为手机怎样用usb连接电脑上网

华为手机怎样用usb连接电脑上网要确保已经安装了华为手机的驱动,接着在电脑的网上邻居那里点击右键-属性点击查看网络连接点击创建一个新的连接并单击下一步继续点下一步选择手动设置我的连接,点击下一步在IS