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] {
    成员字段;
    构造器;
    成员方法;
    重写接口中的所有抽象方法;
相关推荐
程序员小杰@2 分钟前
Spring Boot 常用注解分类速记
java·spring boot·后端
vx_Biye_Design7 分钟前
springboot小学生英语学习APP62773-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·学习·课程设计
吴声子夜歌8 分钟前
Nginx应用与运维——Nginx日志管理
java·运维·nginx
guo_wen_qiang26 分钟前
云服务器nacos搭建-集群&持久化
java·运维·服务器
泡海椒36 分钟前
JQuick-Excel dateFormat 转换实战:日期值与 FORMAT 显示格式的边界
开发语言·python·excel
白杨尚青1 小时前
C++入门篇(十三):vector(上)——动态数组:构造、空间增长与迭代器失效
开发语言·c++·笔记·算法·stl
江江爱编程1 小时前
java零基础保姆级教学01
java·开发语言
9624561 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
vx_Biye_Design1 小时前
expressDeepSeek社团咨询助手的学生社团管理系统60746-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·课程设计·express