接口和抽象类的区别

  1. 设计层次不同

抽象类是对一个类的属性和行为进行抽象,是自下而上的设计,从多个类中抽取共性。

接口是一些行为进行抽象,是自上而下的设计,实现了接口的类拥有对应的行为。

  1. 语法方面的不同

1)接口的成员方法默认为 public abstract,(jdk 8 之后才有 static 和 default 方法),抽象类的方法可以有具体实现

2)接口的成员变量默认是 public static final 的,而 抽象类的成员变量 可以是各种修饰符修饰的

3)一个类不可以继承多个抽象类,但可以实现多个接口。

  1. 接口中不允许有静态方法块,抽象类中可以有静态代码块。
相关推荐
轻刀快马1 小时前
讲明白Lambda 表达式的进化史
java·开发语言
故事和你911 小时前
洛谷-【图论2-2】最短路3
开发语言·数据结构·c++·算法·动态规划·图论
那个失眠的夜1 小时前
SpringBoot
java·开发语言·spring boot·spring·mvc·mybatis
范范@1 小时前
python基础-5大容器
开发语言·python
会编程的土豆1 小时前
Go 连接 Redis 代码详细解析
开发语言·redis·golang
测试员周周1 小时前
【AI测试路线图2】功能测试转 AI 测试:4~5 个月,一条最稳的路
开发语言·人工智能·python·功能测试·测试工具·单元测试·pytest
多敲代码防脱发1 小时前
Spring进阶(Bean的生命周期与Bean的后处理器)
java·服务器·开发语言·spring boot·spring·servlet
吃好睡好便好1 小时前
在Matlab中绘制峰值图
开发语言·学习·算法·matlab·信息可视化
RingWu1 小时前
高并发三板斧-缓存:命中率、一致性、治理
java·spring·缓存
兩尛2 小时前
std::shared_mutex、std::mutex和std::recursive_mutex是什么锁
开发语言·c++·算法