当前位置: 首页 > news >正文

Java抽象类详解:定义、用法、构造器与总结

文章目录

  • 一、什么是抽象类?
  • 二、抽象类的用法
      • 2.1如果一个类中有抽象方法,那么这个类一定是抽象类
      • 2.2抽象类不能进行实例化
      • 2.3如果一个普通类继承了这个抽象类,那么普通类必须重写抽象类当中的抽象方法
      • 2.4 抽象类的构造器
  • 三、总结

一、什么是抽象类?

在 Java 中,抽象类是用 abstract 关键字修饰的类。它不能被实例化(即不能直接 new 出对象),主要用于被其他类继承,作为多个子类的通用模板。

二、抽象类的用法

2.1如果一个类中有抽象方法,那么这个类一定是抽象类

抽象类和普通类的区别在于:抽象类中可以包含抽象方法
示例:普通类里面含有抽象方法,编译器会报错

正确写法:抽象方法可以没有具体的实现

publicabstractclassShape{publicabstractvoiddraw();}

2.2抽象类不能进行实例化


2.3如果一个普通类继承了这个抽象类,那么普通类必须重写抽象类当中的抽象方法

示例:Cycle类继承了Shape类,必须重写Shape类中的抽象方法draw()

publicclassCycleextendsShape{@Overridepublicvoiddraw(){System.out.println("画一个圆圈");}}

从这里可以看出,抽象类的出现就是为了被继承,相当于多一层编译器的校验


2.4 抽象类的构造器

抽象类的构造器,虽然不能直接 new 抽象类(),但抽象类可以被普通类继承。当子类被实例化时,子类构造器的第一行会隐式或显式地调用父类(抽象类)的构造器,目的是初始化抽象类中定义的成员变量。

// 抽象类publicabstractclassAnimal{protectedStringname;// 抽象类的构造器publicAnimal(Stringname){this.name=name;System.out.println("Animal 构造器被调用,name = "+name);}publicabstractvoidsound();}// 子类publicclassDogextendsAnimal{publicDog(Stringname){super(name);// 这里显式调用抽象类的构造器}@Overridepublicvoidsound(){System.out.println(name+"汪汪叫");}}// 测试publicclassTest{publicstaticvoidmain(String[]args){Dogdog=newDog("小黑");// 输出:Animal 构造器被调用,name = 小黑dog.sound();// 输出:小黑汪汪叫}}

打印结果如下:

三、总结

特性抽象类普通类
是否可用new实例化
是否可包含抽象方法
是否可以有构造器✅(供子类调用)
是否可被继承
能否包含final关键字修饰❌(abstractfinal互斥)
主要用途作为模板,定义规范描述具体对象
http://www.jsqmd.com/news/637344/

相关文章:

  • 2026年万方AIGC检测升级了哪些内容?应对方法一次讲清楚
  • 2026年质量好的防火涂料源头工厂推荐 - 行业平台推荐
  • java特性之封装
  • 【AIAgent长期记忆管理黄金法则】:SITS2026首席架构师首次公开3层记忆分层架构与实时衰减算法
  • 【LeetCode HOT100 】:最小覆盖子串——滑动窗口的经典应用题解
  • 别再对着空白界面发呆了!手把手教你用GNURadio Companion(GRC)画出第一个信号流图
  • GoB插件深度解析:3步实现Blender与ZBrush专业级数据传输
  • TortoiseGit与Gerrit完美配合:Windows下的代码Review避坑指南
  • 2026年评价高的水泥草坪砖长期合作厂家推荐 - 行业平台推荐
  • Harness 中的流式请求与响应多路复用
  • 2026年分体法兰厂家有哪些,分体法兰/SAE法兰/扩口法兰/法兰夹/内螺纹法兰/方法兰,分体法兰采购怎么选择 - 品牌推荐师
  • Qwen3.5-9B-AWQ-4bit多场景方案:跨境电商商品图合规检测(文字/Logo/尺寸)
  • 小米、红米电视系统更新固件ROM合集分享 电视刷机升级固件
  • ArcGIS用户必看:用CC工具箱一键搞定面要素四至点提取与坐标写入
  • SITS2026联合17家头部AI工厂达成共识:大模型工程化已进入“SLA驱动时代”,这6项SLO指标你达标了吗?
  • 利用Chord - Ink Shadow自动化批改作业:教育领域的AI助手实践
  • 块状链表的长度
  • Android音频无线传输终极指南:如何免费实现手机声音实时同步到电脑
  • 从零开始:手把手教你编写第一个CMakeLists.txt(完整实战指南)
  • 3步完成B站M4S视频转换:免费跨平台工具完整指南
  • After Effects (AE)2026超详细保姆级下载安装教程 附软件功能详解(新手零基础适用)
  • CRaxsRat v7.4 实战部署:从零搭建远程管理测试环境
  • 卸船机市场调研:2026 - 2032年复合增长率(CAGR)为2.7%
  • 【一天一个计算机知识】Cyber骇客对数据流的 算力操纵与指令集 ——【<algorithm>头文件】从算法的出处和算法的角度带你解读<algorithm>的内容与机制
  • 如何用Python构建智能交易策略:PyBroker量化框架完整指南
  • PyTorch 2.8镜像科研展示:气候模型输出→AI生成可视化动态气象视频
  • PowerPaint-V1商业修图实战:批量处理产品图,提升工作效率
  • CTF解题实战:手把手教你用JSFuck在线解码器搞定LitCTF 2023那道‘天书’题
  • Handof f协议:多Agent任务交接机制
  • 电视盒子刷机固件合集大全 电视网络机顶盒机顶盒最新更新固件