接口

接口
[public] interface I..able
{
//接口中的成员允许添加访问修饰符,默认就是public
//不允许写具有方法体的函数
//接口不能有字段但能有属性
成员;
}
//接口就是一个规范,能力。
public class Person
{
public void CHLSS()
{
Console.WriteLine("我可以吃喝啦撒睡。");
}
}
public interface IKouLanable
{
void KouLan();
}
public class Student:Person,IKouLanable
{
public void KouLan()
{
Console.WriteLine("我也可以扣篮。");
}
}

接口是一种规范
只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员。
为了多态。接口不能被实例化。
也就是说,接口不能new(不能创建对象)

接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public ,不能修改。
(默认为public)接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。
接口中只能有方法,属性,索引器,事件,不能有“字段”和构造函数。
接口与接口之间可以继承,并且可以多继承。
接口并不能去继承一个类,而类可以继承接口(接口只能继承于接口,而类既可以继承接口,也可以继承类)
实现接口的子类必须实现接口的全部成员。
一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。
class MyClass:A,IA{},因为类是单继承的。
显示实现接口的目的:解决方法的重名问题
什么时候显示的去实现接口:
当继承的接口的方法和参数一模一样的时候,要是用显示的实现接口
当一个抽象类实现接口的进修,需要子类去实现接口。

显示实现接口的问题
public class Bird:IFlyable
{
public void Fly()
{
Console.WriteLine("鸟会飞");
}
//显示现实接口
void IFlyable.Fly()
{
Console.WriteLine("我是接口的飞");
}
}
interface IFlyable
{
void Fly();
}

原文地址:https://www.cnblogs.com/iceberg2008/p/4141176.html