接口、普通类和抽象类

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
重生之我是Java开发战士2 小时前
【数据结构】优先级队列(堆)
java·数据结构·算法
菜鸟233号2 小时前
力扣216 组合总和III java实现
java·数据结构·算法·leetcode
dodod20122 小时前
Ubuntu24.04.3执行sudo apt install yarnpkg 命令失败的原因
java·服务器·前端
Evan芙2 小时前
搭建 LNMT 架构并配置 Tomcat 日志管理与自动备份
java·架构·tomcat
青云交2 小时前
Java 大视界 -- Java+Spark 构建企业级用户画像平台:从数据采集到标签输出全流程(437)
java·开发语言·spark·hbase 优化·企业级用户画像·标签计算·高并发查询
铉铉这波能秀2 小时前
正则表达式从入门到精通(字符串模式匹配)
java·数据库·python·sql·正则表达式·模式匹配·表格处理
武子康2 小时前
Java-202 RabbitMQ 生产安装与容器快速启动:Erlang 兼容、RPM 部署与常用命令
java·消息队列·rabbitmq·erlang·java-rabbitmq·mq
a程序小傲2 小时前
米哈游Java后端面试被问:Spring Boot Starter的制作原理
java·spring boot·后端
Misnearch2 小时前
Mock服务是什么?
java·后端·微服务·mock