接口和抽象类的区别

  1. 设计层次不同

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

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

  1. 语法方面的不同

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

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

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

  1. 接口中不允许有静态方法块,抽象类中可以有静态代码块。
相关推荐
wind10032几秒前
Qt5Widgets.dll 缺失报错|游戏软件无法启动完整修复教程
开发语言·qt·游戏·电脑
我叫张土豆10 分钟前
在 OpenClaw Java 对话框输入一句话后,系统是如何运行的?
java·开发语言·人工智能
liangbo718 分钟前
JVM规范第 4 章:class 文件格式
java·jvm
橘子汽水16819 分钟前
Leetcode 236,437:二叉树的最近公共祖先,路径总和III
java·数据结构
牛油果子哥q20 分钟前
C++模板万字深度精讲:函数/类模板特化、全特化与偏特化、SFINAE机制、类型萃取、模板元编程入门、工程实战落地
开发语言·c++·面试
数据狐(Datafox)26 分钟前
1688商品详情API技术解析与落地应用(含标准 JSON 示例)
java·数据库·json
神仙别闹33 分钟前
基于C++ 实现 L 系统分形树
开发语言·c++
君顾134 分钟前
AI智能商城实战指南:从架构设计到部署落地的完整技术方案
java·开发语言·多商户
Rain的Java大神之路36 分钟前
SkyWalking从0-1部署成功实战
java·后端·架构
就叫飞六吧37 分钟前
Spring 动态注册与移除 Bean 科普
java·后端·spring