抽象类与接口(概念,对比)

1.接口 

    今天是星期日,我们没有上课。而我也没有闲着,复习一下昨天学的抽象类和接口,首先说一下接口,接口的概念是可属于任何类或结构的一组相关功能所以实现接口的类或结构必须实现接口定义中指定的接口成员。

接口使用inter face关键字进行定义,可由方法,属性,事件。索引器或这四种成员类型的任意组合构成。

特性:接口类似于抽象基类,不能直接实例化接口,接口中的方法都是抽象方法,实现接口的任何非抽象类型都必须实现接口的所有成员。接口不能包含常量,字段,运算符,实例构造函数,析构函数或类型,不能包含静态成员。接口成员自动公开的,且不能包含任何访问修饰符。接口自身可以多个接口继承,类和结构可继承多个接口,但接口不能继承类。

例如:

Interface Iprogram

{

Void  Fun();

//显示实现接口成员。

Void Iprogram.Fun(){

Console.WriteLine(“I am Fun”);

  }

Static void Main(string []args){

Iprogram p=new Iprogram(); //声明一个接口实例,但不是对接口实例

p.Fun();

Console .Readkey();

   }

}

2.优缺点

    实现接口显式和隐式实现。一般情况,当类或者结构要实现单个接口,可以使用隐式实现。如果类或者结构继承多个接口且接口中具有相同名称成员时,就要用到显式实现,隐式方法实现方式就失败了。

接口的继承和类继承不同,首先,类继承不仅是说明继承,而且也是实现继承;而接口继承只是说明继承。

派生类可以继承基类的方法实现,而派生的接口只继承了父接口的成员方法说明,而没有继承父接口的实现。

接口的覆盖:由于接口实现没有方法体,抽象方法也没有方法体,那么当我们在接口实现方法功能。

       声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

3.区别

    接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现也可以定义非静态的类变量。

抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。抽象类可以提供某些方法的部分实现,接口不可以。抽象类的实例是它的子类给出的,接口的实例接口的类给出的。抽象类的实例是它的子类给出的,接口的实例接口的类给出的。在抽象类中加入一个方法,那么实现它的类就要重新编写(这就是为接口是一个类的规范了。)

接口成员被定义为公共的,但抽象类的成员也可以是私有的,受保护的,内部的或受保护的内部成员。此外接口不能包含字段,构造函数,析构函数,静态成员和变量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值