Abstract Class和Interface的区别
首先Abstract Class是抽象类,而Interface是接口,一个类可以继承多个接口,但是继承一个抽象类。下面我们用表格的形式统计一下两者的不同:
Abstract Class | Interface | |
实例化 | 不能实例化 | 不能实例化 |
类继承 | 一个类只能继承一个抽象类 | 一个类可以继承多个接口 |
数据成员 | 可以有自己的成员 | 必须是public static final类型,是静态的,不能修改 |
方法 |
可以有非抽象方法和抽象方法,对于抽象方法,子类中必须将其实现。 可以包含静态方法 |
所有的方法都是抽象的,子类不能对其进行重新定义,且必须实现。 不能包含静态方法 |
变量 | 可以私有,其值可以在子类中被重新定义和赋值 | 不可私有,且必须给定初始值,子类中不能将其重新定义和赋值 |
构造方法 | 可以有构造方法 | 不能有构造方法 |
实现 | 需要继承 | 需要实现 |
对象可以被foreach遍历的前提是:需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型
分类:
.net后端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」