1
2
3
4
5
6
7

接口

发布时间:2018-12-15 16:11   发布人:焦卫峰   浏览次数:457

1.接口

飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。

接口是引用类型的,类似于类,和抽象类的相似之处有:不能实例化;包含未实现的方法声明;派生类必须实现未实现的方法。

接口只是一个行为的规范或规定,接口的名称习惯上以字母 I 开头,微软的自定义接口总是后带able字段,证明其是表述一类“我能做……”。接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法。

接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。

接口中只能包含成员的声明,不能有任何实现代码。接口的成员总是公有的,不需要也不能添加public 等修饰符,也不能声明为虚方法或静态方法。

    interface IFlyable{

        //接口的成员总是公有的,不需要也不能添加public 等修饰符

        void Fly();

    }

 

    class Bird:IFlyable{

        //子类中重写的方法其存取权限不能低于父类的

        public void Fly(){

            //只要有{},不是分号,一行代码没有也是实现

        }

    }

 

    class Airplane:IFlyable{

        public void Fly(){

        }

}

好的接口定义应该是具有专一功能性的,而不是多功能的,否则造成接口污染。如果一个类只是实现了这个接口的中一个功能,而不得不去实现接口中的其他方法,就叫接口污染。