接口、普通类和抽象类

一、先弄懂:三者的"身份定位"

1.普通类:最基础的功能载体

普通类是 JAVA 中的最常规的类,具备的特性:

  • 定义成员变量 (包括实例变量和类变量)和成员方法(包括普通方法、静态方法、构造方法);
  • 方法既可以有方法体实现具体逻辑,也能根据需求重载重写
  • 支持实例化,可以通过关键字 new 来创建对象

2.抽象类:"半抽象"的模版

abstract 关键字修饰的类,兼具"模版性"和"约束性"

  • 可以包含普通类的所有成员(变量、普通方法、构造方法);
  • 允许定义抽象方法(用 abstract 修饰,只有方法签名,没有方法体),约束子类必须实现的核心逻辑;
  • 无法直接实例化,必须子类继承并实现所有的抽象方法后,才能够创建子类对象

3. 接口:"纯抽象" 的行为规范

接口是用interface关键字定义的特殊类型,它本质是一套 "行为契约",只规定 "做什么",不关心 "怎么做":

JDK 8 之前:只能定义常量(默认public static final)和抽象方法(默认public abstract);

JDK 8 及之后:支持定义默认方法(default修饰,带方法体,子类可直接使用或重写)和静态方法(static修饰,只能通过接口名调用);

无法实例化,必须由类通过implements关键字实现接口中的所有抽象方法(默认方法可选择重写);

一个类可以实现多个接口,以此实现 Java 的 "多继承" 效果。

相关推荐
OPEN-F2 分钟前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
2601_962072211 小时前
SpringMVC进阶(自定义拦截器以及异常处理)
java
2601_962073811 小时前
Spring全面详解(基础版)
java·后端·spring
谢亮_vipxieliang2 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
wuminyu3 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
pnoker3 小时前
IoT DC3 AI 能力:Agentic Center 的设计与边界
java·人工智能·物联网·大模型·spring ai
xiaoqiMikko4 小时前
一条 CVSS 9.0 的 RCE,advisory 里没写修复版是哪个 —— fastjson 16723 的字段考古
java·安全
程序员贺加贝4 小时前
一次 SaaS ERP 主数据生命周期设计:Policy、PreCheck 与结构化阻断原因
java·后端·架构·saas
catino4 小时前
spring-Bean
java·后端·spring
深入云栈4 小时前
Netty 4.2.x 源码深度解析 (十一):EventExecutor 业务线程池 —— 防止 IO 线程阻塞的并发模型
java·后端