接口、普通类和抽象类

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
用户83071968408210 小时前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji341610 小时前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.11 小时前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...11 小时前
【java-软件设计原则】
java·开发语言
JH307311 小时前
为什么switch不支持long
java
盐真卿11 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS11 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu11 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇11 小时前
【实习】银行经理端线下领取扫码功能实现方案
java
野犬寒鸦11 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习