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++是存在多重继承的,即 一个类可以继承多个类.
而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();
你可以找一下关于面向对象编程的书多看看,或许就能更加理解了.
谢谢你,看了一些关于接口的,接口为什么也需要继承,为什么不重新定义一个接口不就完了?
为了设计大型构架用的.确实在简单程序中可有可无
是不是可以把接口当成一种菜单,用的时候用接口调用,而在类中具体实现?
接口的操作,可能在小的项目或者程序中,感觉用处不大,甚至很少用。但是,无论你java,c++还是c语言等,优化代码,封装数据。特别设计模式使用。你看看设计模式很多用的都是封装,多态和接口。还有一些程序集的使用。微软封装的很多程序集都是通过接口反射等实现。vs开发平台,可以拖放控件,都是涉及反射接口等技术。本人学习程度有限,谈了个人认识,不足之处还望大侠们指教。
由于.NET只支持单重继承,接口是类型设计中的一个很大的改进,提供了比基类更大的灵活性。接口不是用来代替基类的,通常情况下他们是混合使用。因为接口不具备基类那种复用性。它只是定义了一个约定,所有的实现都需要后续实现。
接口: 实现多态、隐藏实现、定义约束...........
接口的用处还是很多的,WCF中很多的对外开放的服务,都是定义成为接口的方式
简单的理解,接口就是为了声明一个类的成员实现了某个功能。比如羊肉和蒿子秆都实现了可以被涮着吃这个接口,它们被涮着吃的实现并不一样,但是有一个火锅类就可以涮羊肉或涮蒿子秆了。