扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在VB.NET的类里,实现一个接口的语句是:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的鹤峰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
implements接口名称
例如,下面定义一个车(总称)的接口,这里的车是各种车的总称:
Public Interface ICar
Property color() As String
Property speed() As Long
Sub PrintInfo()
End Interface
然后在不同类型的“车”类里实现它:
Public Class A_Car
Implements ICar
Dim m_color As String, m_speed As Long
Public Property color() As String Implements ICar.color
Get
Return m_color
End Get
Set(ByVal Value As String)
m_color = Value
End Set
End Property
Protected Overrides Sub Finalize()
MsgBox(I was deconstructed!)
End Sub
Public Sub New()
m_color = Red
m_speed = 210
MsgBox(I was constructed!)
End Sub
Public Property speed() As Long Implements ICar.speed
Get
Return m_speed
End Get
Set(ByVal Value As Long)
m_speed = speed
End Set
End Property
Public Sub PrintInfo() Implements ICar.PrintInfo
MsgBox(Color: m_color vbNewLine Speed: m_speed, MsgBoxStyle.Information)
End Sub
End Class
在 Form 的 Load 事件中编写:
Dim myCar As New A_Car
myCar.PrintInfo()
运行之后就创建了一个 A_Car 类的实例 myCar,然后出现两个对话框,分别说明实例已经创建和汽车的信息。当窗体卸载时,这个类的实例 myCar 将自动销毁,这时将出现一个“I was deconstructed!”的对话框。
声明一个接口时,需要考虑以下几点:
1.接口主体只限于对方法,索引器以及属性的声明;
2.接口成员是隐式公开的,如果对其显式指定访问级别,就会出现编译器错误;
3.接口中不能包含字段,构造函数和常量等;
4.在接口中不能实现任何方法,属性或者索引器;
5.在指定方法时,只需要给出返回类型,名称和参数列表,然后分号结束。
面向对象的接口
在C++中,一个类被允许继承多个类。但是在Java以后的语言不被允许。
这样,如果想继承多个类时便非常困难。所以开发方想出了新办法:接口。
一个接口内,允许包含变量、常量等一个类所包含的基本内容。但是,接口中的函数不允许设定代码,也就意味着不能把程序入口放到接口里。由上可以理解到,接口是专门被继承的。接口存在的意义也是被继承。和C++里的抽象类里的纯虚函数是相同的。不能被实例化。
定义接口的关键字是interface,例如:
publicinterfaceMyInterface{
public void add(int x,int y);
public void volume(int x,int y,int z);
}
继承接口的关键字是implements,相当于继承类的extends。
需要注意的是,当继承一个接口时,接口里的所有函数必须全部被覆盖。例如:
class Demo implements MyInterface{
public void add(int x,int y){
System.out.println( +(x+y));
}
public void volume(int x,int y,int z){
System.out.println( +(x*y*z));
}
public static void main(String args[]){
Demo d=new Demo();
d.add(10,20);
d.volume(10,10,10);
}
}
输出结果:
30
1000
当想继承多个类时,开发程序不允许,报错。这样就要用到接口。因为接口允许多重继承(,),而类不允许。所以就要用到接口。
vb6.0中做过这个项目,但是vb.net中也遇到这个问题,看看能否交流一下,刚刚转vb.net。vb6.0中部分代码如下:
Dim HttpReq As Object
Dim request As String
HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")
HttpReq.open("GET", uri, False)
HttpReq.send()
'解析返回值
request = HttpReq.responseBody
request = Split(Split(StrConv(request,vbUnicode,H804),"=")(1),";")(0)
分类: 电脑/网络 程序设计 其他编程语言
问题描述:
在。NET高级概念中接口是什么啊?有哪个知道啊?
解析:
和类一样,接口也定义了一系列属性、方法和事件。但与类不同的是,接口并不提供实现。它们由类来实现,并从类中被定义为单独的实体。
接口表示一种约定,实现接口的类必须严格按其定义来实现接口的每个方面。
有了接口,就可以将功能定义为一些紧密相关成员的小组。可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性问题最小化。也可以在任何时候通过开发附加接口和实现来添加新的功能。
虽然接口实现可以进化,但接口本身一旦被发布就不能再更改。对已发布的接口进行更改会破坏现有的代码。若把接口视为约定,很明显约定双方都各有其承担的义务。接口的发布者同意不再更改该接口,接口的实现者则同意严格按设计来实现接口。
创建接口
通过为接口添加代码对其进行定义,这些代码以 Interface 关键字及接口名称开始,以 End Interface 语句结束。例如,下面的代码定义了一个名为 IAsset 的接口。
Interface IAsset
End Interface
添加定义接口所支持的属性、方法和事件的语句。例如,下面的代码定义了一个函数、一个属性和一个事件。
Interface IAsset
Event ComittedChange(ByVal Success As Boolean)
Property Division() As String
Function GetID() As Integer
End Interface
实现接口
如果正在实现的接口不是项目的一部分,则添加一个对包含该接口的程序集的引用。
创建实现接口的新类,并将 Implements 关键字加入该类名后面的行中。例如,要实现 IAsset 接口,可以将实现类命名为 Computer,如以下代码所示。
Class Computer
Implements IAsset
End Class
为实现类的属性、方法和事件添加过程,如以下代码所示,该段代码是建立在上一步的示例基础上的:
的:
Class Computer
Implements IAsset
Public Event ComittedChange(ByVal Success As Boolean) _
Implements IAsset.ComittedChange
Private divisionValue As String
Public Property Division() As String _
Implements IAsset.Division
Get
Return divisionValue
End Get
Set(ByVal value As String)
divisionValue = value
RaiseEvent ComittedChange(True)
End Set
End Property
Private IDValue As Integer
Public Function GetID() As Integer _
Implements IAsset.GetID
Return IDValue
End Function
Public Sub New(ByVal Division As String, ByVal ID As Integer)
Me.divisionValue = Division
Me.IDValue = ID
End Sub
End Class
调用webservice接口
一般分为静态调用和动态调用
静态调用就是在项目中直接添加服务引用或者web服务引用;
动态调用就是通过模拟http协议调用,这种网上很多提供动态调用服务的处理类,找找直接用就可以了;
静态调用特点:服务参数包含复杂类型(比如自定义的一些实体类)用它比较方便,但是服务如果改变(服务地址更新,服务内容更新)就需要在项目中更新服务引用,重新编译程序;
动态调用特点:对于服务参数包含复杂类型的处理不是很好,如果服务内容改变不需要重新编译程序;
大致想到就这样,详细的可以在网上找找相关的网文,很多资料可以参考的
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流