假设现在有好四个人A,B,C,D,他们都要写毛笔字,有的写行书,有的写楷书,有的写诗,有的写词,虽然写的内容不同,写法也不一样,但是都要在写毛笔字前都要蘸水。那么我们可以建立四个类Class WriterA,Class WriterB,Class WriterC,Class WriterD,让他们都继承同一个接口IDipWater
IDipWater
interface IDipWater
{
void DipWater();
}
interface IDipWater
{
void DipWater();
}
WriterA的设计
WriterA
class WriterA
{
public WriterA()
{ }
void DipWater()
{
Dip();
}
}
class WriterA
{
public WriterA()
{ }
void DipWater()
{
Dip();
}
}
采用接口的好处:
1,将蘸水的方法DipWater抽取出来写到接口的好处是所有继承接口IDipWater的书法家们都会去实现接口中的蘸水方法,而不会忘记蘸水。
2,如果除了蘸水之外书法家们写字前还有其他必做事情要做,仍然可以定义成接口,让书法家们继承接口。
3,对象(类)需要多态,并且往往需要多重继承以便于放入不同父类的多态流程中。但是c#不支持多重继承,接口是个好帮手。
MSDN对接口的阐述为:
接口是使用
IComparable
interface IComparable
{
int CompareTo(object obj);
}
interface IComparable
{
int CompareTo(object obj);
}
MSDN对接口的概述:
接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
不能直接实例化接口。
接口可以包含事件、索引器、方法和属性。
接口不包含方法的实现。
类和结构可从多个接口继承。
接口自身可从多个接口继承。