C#中引入了“接口”的概念,有高手指点一下吗?

lxhvc 2004-04-04 11:06:44
自己看书很困惑,不大好理解,书上拿接口和C++中的虚基类类比?
实在是不好理解。
...全文
122 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Edifier0709 2004-04-05
  • 打赏
  • 举报
回复
接口描述了组件对外提供的服务。在组件和组件之间、组件和客户之间都是通过接口进行交互。因此组件一旦发布,它只能通过预先定义的接口来提供合理的、一致的服务。就好比组装电脑时各个硬件的接口一样,硬件与硬件进行交互都是通过接口一完成的,而且这种接口是稳定的。
一个组件可以实现多个接口,而一个特定的组件接口可以被多个组件来实现。接口和实现是分离的。组件接口不依赖于具体的实现。将接口和实现分开增强了信息的封装程度。同时这要求组件接口必须使用一种与组件实现无关的规范语言。
turnmissile 2004-04-05
  • 打赏
  • 举报
回复
简单的理解:
借口就是说明一个类can do, 能做什么
而继承是说明一个类is a,是什么
用这种概念来区分你他们

qiume 2004-04-05
  • 打赏
  • 举报
回复
// 道理,楼上的兄弟都说了,我来个实例:
public interface intf1
{
void ShowMessage(string str);
}
public class Class1: intf1
{
public void ShowMessage(string str)
{
MessageBox.Show(this.ToString() + ":" + str);
}
}
public class Class2: intf1
{
public void ShowMessage(string str)
{
MessageBox.Show(this.ToString() + ":" + str);
}
}
// 使用:
private void button1_Click(object sender, System.EventArgs e)
{
intf1 cls = new Class1();
cls.ShowMessage("显示消息");
cls = new Class2();
cls.ShowMessage("显示消息");
}
mastercy 2004-04-05
  • 打赏
  • 举报
回复
哦,应该是虚类,必须要继承的
mastercy 2004-04-05
  • 打赏
  • 举报
回复
接口就是C++中的类
formatkm 2004-04-05
  • 打赏
  • 举报
回复
我对于接口的理解是:接口是面向对象编程理论里面的东西,正如前面所说接口就是一个协议,只要类实现了接口就说明了他支持这个协议,它的好处是在以后如果你要向程序加入新的东西,那么你原来是通过接口来调用这些方法,程序的修改就不需要修改以前的内容。接口最好的应用就是提供插件的程序,主程序调用插件就是通过事先定义好的接口调用的。
lxhvc 2004-04-05
  • 打赏
  • 举报
回复
感谢各位赐教!!
风轻扬 2004-04-05
  • 打赏
  • 举报
回复
接口只是方法、属性、事件的描述,只声明不实现,类继承接口就要实现该接口的所有成员,接口支持多继承而类不支持,接口有一点就是可以使不同的类具有相同的特征表现,举例来说,在.NET Framework中,所有实现ISerializable接口的类都可以进行串行化用于网络传输,因为继承ISerializable接口的类都实现了该接口中的方法GetObjectData
huangsuipeng 2004-04-04
  • 打赏
  • 举报
回复
顶一下楼上的:)
shangerhe 2004-04-04
  • 打赏
  • 举报
回复
从面向对象的观点来看,接口就是对象的外观,而对象实际的工作方式就是实现。和类一样,接口也可以定义属性、方法和事件。与类不同的是,接口并不提供实现。现在的接口,是由类来实现的,并从类中被定义为单独的实体。我们可以这样来理解,接口表示的是一种约定。实现接口的类必须严格按其定义来实现接口的每个方面。有了接口,就可以将功能定义为一些紧密相关成员的小组。可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性问题最小化。也可以在任何时候通过开发附加接口和实现来添加新的功能。虽然接口实现可以进化,但接口本身一旦被发布就不能再更改。对已发布的接口进行更改会破坏现有的代码。若把接口视为约定,很明显约定双方都各有其承担的义务。接口的发布者同意不再更改该接口,接口的实现者则同意严格按设计来实现接口。接口的实现可以是类,也可以是结构。接口的定义用的是Interface关键字。通过接口,我们可以定义下某种对象的基本外观,然后可以自由地进行实现与扩展,却不涉及对原型的直接修改。
shanhe 2004-04-04
  • 打赏
  • 举报
回复
一个契约,表示实现某个接口的对象肯定需要实现特定的接口方法
HNU 2004-04-04
  • 打赏
  • 举报
回复


see


http://expert.csdn.net/Expert/topic/2823/2823488.xml?temp=.8250849

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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