首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

接口的真个作用是什么

2013-09-06 
接口的真正作用是什么?看了很多有关接口的实例,感觉接口只是提供了一个规范,不用接口也可以同样实现类的方

接口的真正作用是什么?
看了很多有关接口的实例,感觉接口只是提供了一个规范,不用接口也可以同样实现类的方法。
我总觉得接口没这么简单吧,想请教下大鸟们,接口真正的不可替代的作用是什么呢。

public interface 接口()
{
    public void 方法();
}

public class 类:c
{
    public void 方法();
}

我直接
public class 类
{
    public void 方法();
}
一样啊,接口反而多此一举不是吗。
[解决办法]
接口可以多继承,这是C#的语法特性。

如果不用接口,C#里你如何实现多继承呢?
[解决办法]
请看《Head First设计模式》
我当年就是看了它 悟出来的~


[解决办法]
http://www.cnblogs.com/leoo2sk/archive/2009/06/17/di-and-ioc.html

仔细看完。。。我当年就是看完这个之后彻底领悟了
[解决办法]
有本英文书忘了叫什么,介绍继承类和接口时时大致是这样描述的:inherit a class is "it likes something",inherit a interface is "doing likes something";英文大致是这样,也有点忘了,我个人觉得说的非常到位
[解决办法]

引用:
请看《Head First设计模式》
我当年就是看了它 悟出来的~

这本书绝对是面向对象入门宝典!
------解决方案--------------------


简单来说,用接口类型代替真实的类型,去访问它的方法。

如果没有接口,就只能反射了。

按照你写的:
public class 类
{
    public void 方法();
}
我们再写一个
public class 另一个类
{
    public void 方法();
}
注意,类和另一个类没有继承关系。

如果没有接口,如果我们写这样一个方法:
void foo1(类 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
现在我们希望这个方法也管上另一个类,请问怎么做?
我们只能再写一次:
void foo1(另一个类 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
尽管方法体完全一样,一个字不差!

有了接口,可以这么写:
void foo1(接口 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
这样,类和另一个类只要实现了接口,都可以尽管传进来。
[解决办法]
学了不少知识 谢谢
[解决办法]


[解决办法]
引用:
http://www.cnblogs.com/leoo2sk/archive/2009/06/17/di-and-ioc.html

仔细看完。。。我当年就是看完这个之后彻底领悟了

嗯哼,这个例子貌似不错
[解决办法]
引用:
Quote: 引用:

简单来说,用接口类型代替真实的类型,去访问它的方法。

如果没有接口,就只能反射了。

按照你写的:
public class 类
{
    public void 方法();
}
我们再写一个
public class 另一个类
{
    public void 方法();
}
注意,类和另一个类没有继承关系。

如果没有接口,如果我们写这样一个方法:
void foo1(类 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
现在我们希望这个方法也管上另一个类,请问怎么做?
我们只能再写一次:
void foo1(另一个类 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
尽管方法体完全一样,一个字不差!

有了接口,可以这么写:
void foo1(接口 obj)
{
    for (int i = 1; i < 10000; i++) obj.方法();
}
这样,类和另一个类只要实现了接口,都可以尽管传进来。


版主介绍的有点看明白了 也就说 如果以后还要再进来一个类的话 只要让这个类继承接口就OK 了是吗?



是的,定义一个接口其实就是定义一个兼容所有有这个方法名和方法参数、返回值的类的类型。
[解决办法]
接口嘛,说个例子吧,比如你写一个程序,这个程序你想有多个数据库版本。 比如ACCESS,SQL,MYSQL,XML。。等版本。。。按初学者的话可能每一个版本写一套程序,写出N套出来。。 有经验的只要做好分层,分好层后只需要替换数据层的类库就行了。 比如N层结构,表现层,逻辑层,数据层接口定义层,以上这几层都不必改动。改动的只要改动继承这个数据层接口定义层的类就行了,接口层就是定义一个规范,比如无论你采用哪个数据库,都离开不了删除,选择,更改,统计这些操作。接口就是一个拥有这些操作的界面,而具体的实现由继承这个接口的类完成,比如继续这个接口的ACCESS操作类,SQL操作类,XML操作类。。。要更换版本只要替换这一层的DLL就行了。。。
[解决办法]
引用:
http://www.cnblogs.com/lynnlin/archive/2008/06/25/1229928.html

多看一下例子,你会发现新大陆。
这个通俗易懂

热点排行