美文网首页
c#接口interface和抽象类abstract的区别

c#接口interface和抽象类abstract的区别

作者: 江南极客 | 来源:发表于2023-03-30 21:52 被阅读0次

相同点:

1、都可以被继承

2、都不能被直接实例化

3、都可以包含方法的声明

不同点:

1、接口不能包含成员变量,也就是字段,抽象类可以包含成员变量

2、接口不能包含构造函数,抽象类可以包含抽象函数

3、接口可以多继承,抽象类只能单继承

4、接口子类必须实现所有声明的方法,抽象类子类必须实现所有的抽象方法(必须是共有的),以override重写的方式来实现抽象方法,普通方法可以不实现(不带abstract修饰的)

5、接口方法声明默认public,不能用其它修饰符修饰,否则编译会报错,抽象类的普通方法可由其它访问修饰符修饰,抽象方法必须是public

另外:

一个类只能继承一个抽象类,能继承多个接口,抽象类可以看做亲爹,只能有一个,接口可以看做干爹,可以有多个。

接口可以看做是一个约定,其中定义了类或结构体继承之后需要实现的功能。

接口一旦被继承,派生类就必须实现接口中的所有成员,除非派生类本身也是抽象类。

接口中可以包含方法、属性、事件、索引器。

一个接口可以继承另一个接口,例如接口1继承接口2,一个类继承接口1时,必须同时实现接口1和接口2的所有成员。

视频解析地址:

https://www.bilibili.com/video/BV1Aq4y1T7uT/?vd_source=fe3df5734b9eeda1b10a81178055917f

相关文章

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • 抽象类和接口区别

    一.抽象类和接口区别: 抽象类由abstract关键字来修饰,接口由interface关键字来修饰。 抽象类中除了...

  • 面试问题整理

    接口(interface)和抽象类(abstract class)的区别是什么? 一个类实现(implemens)...

  • 2018-07-19 java基础(一)

    1.abstract class 和interface 有什么区别? 抽象类可以有构造方法 接口不行 抽象类可以有...

  • Java抽象类Abstract Class和接口Interfac

    抽象类Abstract Class和接口Interface区别 抽象类是为了隐藏内部实现,只向外部展示当前类具备的...

  • Java学习笔记

    抽象类和接口之间的区别 1.关键字 abstract class interface2.组成 构造方法,抽象方法,...

  • java abstract

    参考java抽象类和抽象方法Android开发:抽象类(abstract class)和接口(Interface)...

  • 2018面试宝典

    1.抽象类(abstract class)和接口(interface)有什么区别? 答:相同点:都不能被实例...

  • java接口与抽象类的理解

    接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制 接口interfac...

  • Java基础——抽象abstract和接口

    一、abstract和接口初认识 abstract class和interface是Java语言中对于抽象类定义进...

网友评论

      本文标题:c#接口interface和抽象类abstract的区别

      本文链接:https://www.haomeiwen.com/subject/pkmcddtx.html