C#中引入了“接口”的概念,有高手指点一下吗? seehttp://expert.csdn.net/Expert/topic/2823/2823488.xml?temp=.8250849 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从面向对象的观点来看,接口就是对象的外观,而对象实际的工作方式就是实现。和类一样,接口也可以定义属性、方法和事件。与类不同的是,接口并不提供实现。现在的接口,是由类来实现的,并从类中被定义为单独的实体。我们可以这样来理解,接口表示的是一种约定。实现接口的类必须严格按其定义来实现接口的每个方面。有了接口,就可以将功能定义为一些紧密相关成员的小组。可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性问题最小化。也可以在任何时候通过开发附加接口和实现来添加新的功能。虽然接口实现可以进化,但接口本身一旦被发布就不能再更改。对已发布的接口进行更改会破坏现有的代码。若把接口视为约定,很明显约定双方都各有其承担的义务。接口的发布者同意不再更改该接口,接口的实现者则同意严格按设计来实现接口。接口的实现可以是类,也可以是结构。接口的定义用的是Interface关键字。通过接口,我们可以定义下某种对象的基本外观,然后可以自由地进行实现与扩展,却不涉及对原型的直接修改。 接口只是方法、属性、事件的描述,只声明不实现,类继承接口就要实现该接口的所有成员,接口支持多继承而类不支持,接口有一点就是可以使不同的类具有相同的特征表现,举例来说,在.NET Framework中,所有实现ISerializable接口的类都可以进行串行化用于网络传输,因为继承ISerializable接口的类都实现了该接口中的方法GetObjectData // 道理,楼上的兄弟都说了,我来个实例: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("显示消息");} 简单的理解:借口就是说明一个类can do, 能做什么而继承是说明一个类is a,是什么用这种概念来区分你他们 VS的安装项目中不能访问共享文件 ILSpy求教程 我就不明白了了,这两段代码有什么不同 SQL SERVER 智能查询 同义词查询 这里是什么意思 WEB页面如何触发工作流引擎? 这个效果怎么做?刚从WINFROM转WEB开发的 如何让DateGridView 不选择第一行? 我是一个初学者,想问大家几个问题,请大家帮助我.谢谢! 【WPF】后台代码添加数据绑定无效 数组的CopyTo方法的使用? 在后台程序中怎么调用前台html控件的值?
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("显示消息");
}
借口就是说明一个类can do, 能做什么
而继承是说明一个类is a,是什么
用这种概念来区分你他们