日期:2014-05-19  浏览次数:20847 次

关于接口的提问
提问:怎么理解下面的描述?请举例,谢谢。。。

接口的优点是它提供了一种让一个类成为两个类的子类的方式?

------解决方案--------------------
接口:
接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。
一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。
下面的示例显示一个包含默认属性、事件 E、方法 F 和属性 P 的接口:
Interface IExample
Default Property Item(index As Integer) As String
Event E()
Sub F(ByVal Value As Integer)
Property P() As String
End Interface
接口可以使用多重继承。在下面的示例中,接口 IComboBox 同时从 ITextBox 和 IListBox 继承:
Interface IControl
Sub Paint()
End Interface

Interface ITextBox
Inherits IControl
Sub SetText([text] As String)
End Interface

Interface IListBox
Inherits IControl
Sub SetItems(items() As String)
End Interface

Interface IComboBox
Inherits ITextBox, IListBox
End Interface
类和结构可实现多个接口。在下面的示例中,类 EditBox 从类 Control 派生,并同时实现 IControl 和 IDataBound:
Interface IDataBound
Sub Bind(b As Binder)
End Interface

Public Class EditBox
Inherits Control
Implements IControl
Implements IDataBound
Public Sub Paint()Implements IControl.Paint
...
End Sub
Public Sub Bind(b As Binder) Implements IDataBound.Bind
End Sub
End Class
-------------------------------------------

------解决方案--------------------
接口的优点是它提供了一种让一个类成为两个类的子类的方式

-----------------
个人觉得这句话说的不太对,因为在C#中一个类只能从一个父类继承.

一个类只能由一个父类继承下来,但是可以同时继承自多个接口,这样一来一个类就可以看作任一个接口的实例,就可以按这个接口来操作这个类.比如:

class A:Ia,Ib,Ic
{
}

这样这个a的实例可以被如下的使用:
A a=new A();
Ia a1= a as Ia;
Ib a2 = a as Ib;
...

只能说接口,可以让一个类有几个 "类型 ",从而减小了因不能多继承而带来的不便!