Java普通类、抽象类、接口的应用和区别

Java普通类、抽象类、接口的对比

比较项 普通类 抽象类 接口
定义关键字 class abstract class interface
继承或实现关键字 extends extends implements
成员字段 变量、常量 变量、常量 常量
构造器 既可以定义也可以实例化 只能定义,不能实例化 既不能定义也不能实例化
成员方法 普通方法、静态方法 普通方法、静态方法、抽象方法 抽象方法、静态方法、默认方法

通过表格进行对比,当根据需求分析,不仅需要创建抽象方法,还需要其他复杂操作,推荐使用抽象类,功能更强大,下面分别展开说说抽象类和接口

抽象类

abstract关键字特点

能够修饰类和成员方法

  1. 修饰的类不能实例化对象
  2. 修饰的成员方法没有方法体

格式

java 复制代码
public abstract class 类名 {
成员字段;
// 抽象类中定义构造器,只使用构造器进行值传递
构造器;
成员方法;
// 抽象方法    [ ] 中包含的内容,表示可省略
public abstract 返回值类型 方法名([参数列表]);
}

抽象类中可以定义的内容

接口

接口是按照用户需求封装方法,由具体的实现类去实现

为什么要使用接口

由于Java只支持单继承模式,避免单继承局限性,使用接口

定义格式

java 复制代码
public interface 接口名{
接口成员;
}

接口中可以定义的内容

如图在IDEA中,简单创建了一个接口类,并定义了成员,接口中不能定义的成员是报错的

类如何去实现抽象类和接口

先继承父类再实现接口,接口可以实现多个

java 复制代码
public [修饰符] class 类名 extends 父类 implements 接口[,接口1,...,接口n] {
    成员字段;
    构造器;
    成员方法;
    重写接口中的所有抽象方法;
相关推荐
CodeHackerBhx17 分钟前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式
xlxxy_32 分钟前
外部系统调用SAP接口遇到的一些报错
开发语言·数据库·sap·abap
八角.。35 分钟前
方法参数与Debug按键
java·开发语言·jvm
BerryS3N41 分钟前
Java在人工智能与大模型时代的深度演进:从工程落地、高性能计算到企业级Agent与RAG架构实战指南
java·人工智能·架构
郝亚军1 小时前
FE1.1S-BQFN24BT可以指定IP端口吗?
开发语言·php
阿里嘎多学长1 小时前
2026-08-04 GitHub 热点项目精选
开发语言·程序员·github·代码托管
蔬菜_1 小时前
前端转全栈-day2(修饰符)
java
fīɡЙtīиɡ ℡1 小时前
怎么是用JWT
java·状态模式
唐青枫1 小时前
Java JCommander 实战详解:用注解解析命令行参数
java
晴天161 小时前
Rust 快速入门 (从 JavaScript 开发者视角)-Day09
开发语言·javascript·rust