关于接口(Interface)的疑惑,请高手释疑.谢谢!!

lcht1 2004-11-21 08:23:55
我定义了一个接口类,生成了一个dll文件,在另一个类里也实现了接口的所有方法,现在我搞不懂的是,应该如何使用这个接口.

原来一般只是实例化类,然后就可以使用类的方法了,现在中间多了个接口,我该怎么用呢,难道还和以前一样,直接new 类吗?

接口的作用只是给别人定义一个规则,让别人按规则实现,对自己有什么约束吗?

我想直接实例化接口,但提示接口不能用new方法?

请大侠示下,谢谢了?
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
水如烟 2004-11-21
  • 打赏
  • 举报
回复
好象MSDN上有这方面的示例的.我的较复杂,不好贴.
水如烟 2004-11-21
  • 打赏
  • 举报
回复
这方面我也刚接触
lcht1 2004-11-21
  • 打赏
  • 举报
回复
明白了一点,谢谢了.

http://dev.csdn.net/develop/article/14/14124.shtm
http://dev.csdn.net/develop/article/14/14110.shtm

因为需要将接口进行实例化,我学习了上面两天文章,做了一个Class Factory(类厂),但还是达不到我需要的效果,我只能用new方法才可以

我正在学习remoting,不希望在客户端引用服务器端生成的dll文件,希望用接口的方式实现元数据,但 我怎么也搞不定,大侠救我!(我在学远程事件的调用)
水如烟 2004-11-21
  • 打赏
  • 举报
回复
就是说,你完全可以只关心接口,只对接口的公用属性和方法进行操作.
水如烟 2004-11-21
  • 打赏
  • 举报
回复
还可以:
Dim total(1) As IPerson
total(0) = CType(s, IPerson)
total(1) = CType(t, IPerson)
total(0).Show()
total(1).Show()
水如烟 2004-11-21
  • 打赏
  • 举报
回复
明白了吗?
你还可以
CType(s, IPerson)
CType(t, IPerson)
水如烟 2004-11-21
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s As New Student
s.Name = "LzmTW"
Dim t As New Teacher
t.Name = "NET"
ShowMessage(s)
ShowMessage(t)
End Sub
'使用时一般主要用在这个地方,注意下面的参数
Private Sub ShowMessage(ByVal Person As IPerson)
Person.Show()
MsgBox(Person.Name)
End Sub

/////////////////////////////////////////////////////////////////////////

Public Interface IPerson
Property Name() As String
Sub Show()
End Interface
Public Class Student
Implements IPerson
Private mName As String
Public Property Name() As String Implements IPerson.Name
Get
Return "我是学生,我的名字叫" & mName
End Get
Set(ByVal Value As String)
mName = Value
End Set
End Property

Public Sub Show() Implements IPerson.Show
MsgBox("我属于学生类")
End Sub
End Class
Public Class Teacher
Implements IPerson
Private mName As String
Public Property Name() As String Implements IPerson.Name
Get
Return "我是教师,我的名字叫" & mName
End Get
Set(ByVal Value As String)
mName = Value
End Set
End Property

Public Sub Show() Implements IPerson.Show
MsgBox("我属于老师类")
End Sub
End Class
vitamin_ok 2004-11-21
  • 打赏
  • 举报
回复
public interface IAbc
{
int add(int a,int b);
}
public class abc:IAbc
{
public int add(int a,int b)
{
return a+b;
}
}

使用:
IAbc _iabc = new abc();
int c = _iabc.add(1,2);

接口可以很多的用法。你可以随意改变类的内容,只要不改变接口,在使用端就不会有任何改变。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧