接口
interface IFlay()
{
void Fly();
string Name// 可以有属性
{get;set;}
}
接口成员不能有访问修饰符 隐式公开(Public) 接口可以有
里面可以有方法属性索引,但不能有字段(字段本身就是实现),构造函数
接口里面只能有未实现的成员 不能有实现的内容
接口的目的是给类提供一种功能一种约束, 解决类的单根继承。接口可以实现多继承
两个概念:实现 接口; 继承 类
继承的父类,必须出现在接口之前
接口可以继承接口
接口的显示实现:用于继承2个接口的时候方法重名的情况下 这种情况下调用方法的时候只能用 接口名.方法名 调用
接口提供能力,一个接口制作一件事情 接口污染(一个接口中定义两个不相干的方法/能力)
接口和抽象类
抽象类中可以有实现而接口中不能有实现
抽象类和接口都不能被实例化
接口的成员在子类中直接实现,抽象类中的抽象成员要重写override 接口
什么时候使用抽象类,什么时候
抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用的功能(飞机 鸟 飞的功能 可以定义一个飞的方法)