首页 新闻 会员 周边

C#中的类接口有什么用?

0
悬赏园豆:5 [已解决问题] 解决于 2013-03-17 11:35

C#中的类接口有什么用?

我觉得没什么用,功能类似于C++中的调用继承类的指针一样功能?

如c++中

class A{}

Class B:Class A {}

A a ,*p;

B b;

p =a;

p->(a中的成员);

p=b;

p->(b中的成员);

C#中的接口好像与C++中的指针有点类似,但是接口似乎可有可无,带来不了什么方便?但是书中说是很重要,求高手指教,接口到底有什么功能,什么情况下必须用接口或用接口会方便?

c#
ZGHAPPY的主页 ZGHAPPY | 菜鸟二级 | 园豆:207
提问于:2013-03-16 20:12
< >
分享
最佳答案
0

印象中C++是存在多重继承的,即 一个类可以继承多个类.

而C#是不存在多重继承的,即一个类最多只可以继承自一个类,至于C#语言为什么这样设计,很大程度是为了避免多重继承带来的混乱.

所以C#中引入了接口interface.

eg:

public class Animal {  public string Name {get;set;} }

public class Bird : Animal { } 

鸟继承自动物类.这应该很容易懂吧. 这时如果Bird要实现一个fly的方法,这时便可以创建一个接口了.

public Interface IFly { void Fly(); }

public class Bird:Animal,IFly

{

  public void Fly()

  {

    //DO SOMETHING

  }

}

实例化调用时可以这样调用:

IFly birdFly=new Bird();

birdFly.Fly();

你可以找一下关于面向对象编程的书多看看,或许就能更加理解了.

收获园豆:5
teroy | 初学一级 |园豆:125 | 2013-03-16 20:36

谢谢你,看了一些关于接口的,接口为什么也需要继承,为什么不重新定义一个接口不就完了?

ZGHAPPY | 园豆:207 (菜鸟二级) | 2013-03-16 20:40
其他回答(6)
0

为了设计大型构架用的.确实在简单程序中可有可无

56180825 | 园豆:1756 (小虾三级) | 2013-03-16 20:40

是不是可以把接口当成一种菜单,用的时候用接口调用,而在类中具体实现?

支持(0) 反对(0) ZGHAPPY | 园豆:207 (菜鸟二级) | 2013-03-16 20:43
0

接口的操作,可能在小的项目或者程序中,感觉用处不大,甚至很少用。但是,无论你java,c++还是c语言等,优化代码,封装数据。特别设计模式使用。你看看设计模式很多用的都是封装,多态和接口。还有一些程序集的使用。微软封装的很多程序集都是通过接口反射等实现。vs开发平台,可以拖放控件,都是涉及反射接口等技术。本人学习程度有限,谈了个人认识,不足之处还望大侠们指教。

伏草惟存 | 园豆:1420 (小虾三级) | 2013-03-16 21:36
0

由于.NET只支持单重继承,接口是类型设计中的一个很大的改进,提供了比基类更大的灵活性。接口不是用来代替基类的,通常情况下他们是混合使用。因为接口不具备基类那种复用性。它只是定义了一个约定,所有的实现都需要后续实现。

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-17 08:03
0

接口:   实现多态、隐藏实现、定义约束...........

Qlin | 园豆:2403 (老鸟四级) | 2013-03-17 08:33
0

接口的用处还是很多的,WCF中很多的对外开放的服务,都是定义成为接口的方式

chenping2008 | 园豆:9836 (大侠五级) | 2013-03-17 10:16
0

简单的理解,接口就是为了声明一个类的成员实现了某个功能。比如羊肉和蒿子秆都实现了可以被涮着吃这个接口,它们被涮着吃的实现并不一样,但是有一个火锅类就可以涮羊肉或涮蒿子秆了。

KallMeNeo | 园豆:247 (菜鸟二级) | 2013-03-17 10:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册