1.什么是C#接口
1)一个C#接口是一些方法特征的集合,但没有方法的实现
public interface PCI {
void start();
void stop();
}
2)C#接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
class SoundCard : PCI {
public void start()
{
Console.WriteLine("Du du...");
}
public void stop()
{
Console.WriteLine("Sound stop!");
}
}
class NetworkCard : PCI {
public void start()
{
Console.WriteLine("Send...");
}
public void stop()
{
Console.WriteLine("Network stop!");
}
}
2.如何使用C#接口
可以使用C#接口标识类型
运行时,根据实际创建的对象类型调用相应的方法实现
public class Assembler {
public static void main(String[] args)
{
PCI nc = new NetworkCard();
PCI sc = new SoundCard();
nc.start();
sc.start();
}
}
3.为什么需要C#接口?
1)C#语言中实现面向对象的继承关系,一个类只能有一个父类,也就是说C#是单继承。
2)C#语言引入接口(Interface)概念,并规定“一个类可以实现多个 接口”。
4.接口的特性
1)接口也是抽象类,而且是更纯粹的抽象类,因为接口中的所有方法都必须是抽象方法
2)接口中不允许包含字段。
3)接口中所有成员默认都是public,并且不允许加访问修饰符。
4)实现类实现接口的方法时,不需要标注override关键字。
5)接口自身也可以从多个接口继承。
6)DotNet约定,定义接口时,以 I 作为接口名称前缀,如IFly 或 IList等。
5.简单实例:
public interface Ieat { void eat(); } public interface Igo { void go(); } public interface Isleep { void sleep(); } class Animals:Ieat,Igo,Isleep { public static int weight = 100; public void eat() { weight+= 10; } public void go() { weight -= 10; } public void sleep() { Console.WriteLine("I am sleeping!"); } } class Program { static void Main(string[] args) { Animals animal=new Animals(); animal.eat(); Console.WriteLine(Animals.weight); animal.go(); animal.go(); Console.WriteLine(Animals.weight); animal.sleep(); } } }