zoukankan      html  css  js  c++  java
  • 接口

    接口 

    1. 接口是一个完全抽象的一种约定,相当于没有任何方法实现的抽象类,接口是用来实现的
    2. 定义一个接口用关键字:interface,接口中的成员不能添加访问修饰符,并且成员不能够有实现
    3. 接口的定义通常用一个大写字母I开头,比如:IComparable
    4. 接口中可以定义事件、方法、简写的属性、索引,其实严格的说只是能够定义方法,因为事件属性以及索引内部还是方法。属性的本质是方法,简写的属性编译器不会生成字段,故相当于定义了两个没有实现的方法
    5. 接口是用来实现的,所有成员默认的为public。所有的成员定义的时候是不需要写访问修饰符的,因为没有意义,如果是private,只能够自己调用,但是自己又实现不了方法,谁来调用?但是实现的时候需要写。如果一个类实现了接口必须要实现接口里面定义的方法,并且实现的方法必须是public类型
    6. 如果一个类即继承了类又实现了接口,那么继承的类必须写在前面,实现的接口写在后面,实现接口同样式冒号 接口名 : IFly
    7. 一个类只是能够继承一个类,但是却可以实现多个接口,各个接口和类之间用逗号隔开即可
    8. 接口中定义的属性只能够是{get;set;}这种简写形式,不能够提供具体的实现,并且如果定义的属性是只读的,在实现接口的时候必须提供实现体
    9. 同样可以用接口变量来指向一个实现了这个接口的对象,但是这样能够调用的就只是接口中提供的能力
    	interface IFly
    	{
    		void fly();
    	}


    C#中接口和类的异同点 

    不同点:

    1. 不能够直接实例化接口,即: IFly fly = new IFly(); 是不可以的
    2. 接口中能够定义方法,但是不提供方法的实现体,但是需要写上返回值类型。即:void Say(); 形式
    3. 类只能够单继承,但是接口却可以多继承(准确的叫做实现)
    4. 一个类的定义可以再不同的源文件之间进行一个拆分:用关键字 partial 来实现

    相同点:

    1. 接口、类和结构都可以从多个接口来继承,应该说是实现多个接口
    2. 接口类似于抽象基类,继承接口的所有非抽象类型都必须实现接口的所有成员
    3. 接口和类都可以包含事件、索引、方法和属性

    抽象类定义的是公共的实现和能力,接口只是能够定义公共的能力,接口相当于给类打个标签,标识这个类有这个能力

    C#中是否支持多继承
    类之间不支持,接口之间支持。类对接口之间叫做实现。可以理解为一个人只能够有一个爹但是可以有多种能力,接口叫实现







  • 相关阅读:
    第一次结对作业
    第二次编程作业
    第一次编程作业
    第一次博客作业*
    个人总结
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第二次个人编程作业
    第一次个人编程作业
  • 原文地址:https://www.cnblogs.com/qigang/p/3841930.html
Copyright © 2011-2022 走看看