接口、普通类和抽象类

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
智慧物业老杨2 小时前
物业日常巡查的数智化重构:从“打卡式巡检“到“闭环式风控“
android·java·人工智能·系统架构·rxjava
步行cgn9 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风9 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae9 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路10 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog11 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog11 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Ivanqhz11 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络
qq_25183645712 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
caoerzhong12 小时前
JeeWMS 开源仓库管理系统全景解读:一套 Java WMS 如何把 WMS/OMS/BMS/TMS 装进同一个系统
java·开源