vb.net中用接口实现多态性

用户可以在vb.net中使用接口来完成多态性的实现。通过使用多接口,用户可以在不中断运行代码的情况下,允许运行多种软件的系统组件。
接口象类那样描述属性和方法,但是它和类不同的是,接口不能提供任何implementation。
为了使用接口来实现多态性,用户需先建立一个接口,并且通过其他的几个类实现该接口。用户可以用几乎相同的方法调用其他对象已经实现的方法。
下面这个例子就是使用接口的方法实现多态性:

Namespace PolyNamespace
   Interface Animal
        Sub Move(ByRef Distance As Double)
        Sub Bite(Byval What As Object)
   End Interface
   Class Flea
        Implements animal
        Public Sub bite(Byval What As Object)Implements animal.bite
          'Bite something
        End Sub
        Sub Move(ByRef Distance AS Double)Implements animal.move
          distance=Distance+1
        End Sub
   End Class
   Class Dog
      Implements animal
      Public Sub bite(Byval What As Object)Implements animal.bite
        'Bite something
      End Sub
      Sub Move(ByRef Distance AS Double)Implements animal.move
         distance=Distance+100
      End sub
   End Class
End Namespace

'add this section to the your form
Protected Sub Button1_Click(Byval sender As System.Object,_
              Byval e As System.EventArgs)
   Dim aFlea As New Flea()
   Dim anobj As Object()
   Dim aDog As New Dog()
   GetFood(aflea,anobj)
   GetFood(aDog,anobj)
End Sub

Public sub GetFood(Byval Critter As Animal,Byval Food As Object)
   Dim dblDistance As Double
   'Code to calculate distance to food(omitted).
   Critter.Move(dblDistance) 'Early bound(vtable)
   Critter.Bite(Food) 'Early bound(vtable)
End Sub

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索接口
, implements
, sub
, end
, 多态性
ByVal
,以便于您获取更多的相关知识。

时间: 2025-01-19 20:36:33

vb.net中用接口实现多态性的相关文章

vb.net中用继承实现多态性

大部分面向对象的程序开发系统都是通过继承来实现多态.比如说跳蚤类和狗类都是从动物类继承过来的.为了突出每一种动物走动的特点,则每一种特定动物类都要重载动物类的"Move"方法. 多态性的问题是因为用户可以需要在还不知道是要对哪种特定动物进行处理的时候,就要调用多种从动物类中派生出来的特定的动物类中的"Move"方法. 在下面的这个TestPolymorphism过程中,用继承来实现多态性: MustInherit Public Class Amimal '基本类 M

VB数据访问接口

VB数据访问接口功能及含义 ADC高级数据连接器(Advanced Data Connector): 提供绑定ADO数据源到窗体的数据绑定控件上.ADC主要是一种直接访问或者通过ADO访问远程OLEDB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件.它是特地为Web上的浏览器为基础的应用程序而设计的. ADOActive数据对象(Active Data Objects): ADO实际是一种提供访问各种数据类型的连接机制.ADO设计为一种极简单的格式,通过ODBC的方法同数据库接

php 面向对象中接口 与多态性的用法

php教程 面向对象中接口 与多态性的用法 ,接口的方法名是show,继承接口的类中必须有show这个方法,要不然就会报错.也就是说接口的方法是假的,真正起作用的是在继承的类中的方法,就是因为这一点,所以我觉得,接口根php的抽象类有点像. <?php interface face1 {  const param = 'test';  public function show(); } class test implements face1 {  public function show()  

VB.Net使用接口的问题

问题描述 目前的目标:在VB.net中使用第三方提供的dll和他们的硬件通过串口进行通讯现在第三方厂家提供了与他们硬件串口通讯的dll,他们提供的示例是在JScript写的如下所示:varreq:SYS_VERSION=newSYS_VERSION();ZEngine.Send("Device1",req);//将该请求发送给,"device1"的串口设备 在VB.net中添加提供的dll,来进行程序编写,声明好对象好,不清楚如何继续,代码如下所示:DimreadP

PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述

复制代码 代码如下: <?php /* 边学边做的,为方便自己翻阅而发布,更为得到高人指点而发布,欢迎高手指点...... [提示]本例通过测试无误 [情景设计] 模拟计算机主板IDE接口,比如:主板可以存取的储存器常常有光驱.硬盘.闪存等等, 为了方便,有必要对这些不同的储存器设定同一的接口. 本例还假设一种前所未有的.存取方式与众不同的外星储存器也要加到主板上进行存取, 于是需要采用耦合的设计模式. [本例主要讲述] 1.通过接口.抽象类.一般类继承三种方式达到所谓的"接口"

php学习笔记 面向对象中[接口]与[多态性]的应用_php基础

复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽

VB.NET 中用API函数Polygon画多边形错误问题

问题描述 为了工作方便.想把以前用VB6写的工具转换成VB.NET..主要是为界面好看.但是今在用到API函数Polygon绘多边形的时候,提示错误了.具体代代码如下,请各位指导一下了..PublicClassForm1PrivateDeclareFunctionDeleteObjectLib"gdi32"(ByValhObjectAsInteger)AsIntegerPrivateDeclareFunctionSelectObjectLib"gdi32"Alias

vb.net中用update语句出现至少一个参数未指定值

问题描述 MyCommand=NewOleDbCommand("UPDATEtbManagerSETManagerName='"&Trim(TxtName.Text)&"',PassWword='"&Trim(TxtPassWord.Text)&"',Status='"&Trim(ComStatus.Text)&"',CellPhone='"&Trim(TxtCellPh

在VB.NET中用ADO(不是ADO.NET)获取数据库中的所有非系统表名

ado|数据|数据库 '假设mCnnDB是个已打开某一数据库的ADO.Connection'获取数据库中的所有表名关键是用到ADO.Connection的OpenSchema方法'该方法返回一个只读的数据集,包括系统表和用户表.'因此,需要一个集合来保存其中的用户表    Public Function GetAllTableName() As System.Collections.ArrayList        Dim t As New System.Collections.ArrayLis