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

Day60 Java面向对象15 abstract关键字详解

Day60 Java面向对象15 abstract关键字详解

1.抽象类

  • abstract修饰的类就是抽象类
  • 抽象类无法被new创建对象实例,只能被继承
  • 抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类
    (抽象类中可以有正常方法)

2.抽象方法

  • abstract修饰的方法就是抽象方法
  • 抽象方法只有方法头,没有方法体。方法体要交给子类重写
    子类必须重写父类的抽象方法,除非子类也为抽象类

3.抽象类和抽象方法的本质是:约束

4.理解

abstract class Animals {abstrcat void makesound();void sleep(){System.out.println("睡觉了");}
}
class Dog extends Animals {@overridevoid makesound(){System.out.println("汪汪汪");}
}

因为不存在“动物”这种动物,父类为Animals定义为抽象类,禁止其去创建实例。仅作为“动物”这种约束去让子类继承。
子类Dog,狗是正真实存在的一种动物(也可以继续把Dog作为抽象类,继续向下约束,再扩展为泰迪,秋田…等)
因为每种动物叫声不一样,所以在Animals中定义一种抽象方法,仅作为“叫”这么行为的约束,具体怎么叫(汪汪汪,还是 喵喵喵)交给继承这个抽象方法的子类去重写。
而sleep睡觉,每种动物的睡觉的行为都一样,所以可以在抽象类中直接定义普通的方法sleep,作为公共逻辑,子类也没有必要去重写这种公共的方法。

http://www.xdnf.cn/news/1364833.html

相关文章:

  • 物流架构实践:ZKmall开源商城物流接口对接与状态同步
  • 配置单区域 OSPF
  • 基于SpringBoot的招聘管理系统【2026最新】
  • Redis类型之List
  • 【慕伏白】CTFHub 技能树学习笔记 -- Web 之信息泄露
  • vue3+typescript:为表格生成唯一的Key/No
  • 集群与集群概念
  • 如何在 Jenkins 中安装 Master 和 Slave 节点以优化 CI/CD 流程
  • 【数据可视化-98】2025年上半年地方财政收入Top 20城市可视化分析:Python + Pyecharts打造炫酷暗黑主题大屏
  • 【数据可视化-100】使用 Pyecharts 绘制人口迁徙图:步骤与数据组织形式
  • Linux下的软件编程——网络编程(http)
  • 基于git的场景解决
  • DeepSeek 14B模型本地部署与预训练实现方案
  • 从零开始学习单片机15
  • MySQL常见报错分析及解决方案总结(1)---Can‘t connect to MySQL server on ‘localhost‘(10061)
  • 什么是事件循环(Event Loop)?浏览器和 Node.js 中的事件循环有什么区别?
  • 维度建模 —— 雪花模型 和 星型模型的优缺点
  • 冯·诺依曼架构:现代计算机的基石与瓶颈
  • Linux驱动开发笔记(七)——并发与竞争(下)——自旋锁信号量互斥体
  • k8s笔记03-常用操作命令
  • vite 项目创建、插件配置
  • JBL音响代理——河北正娱科技的声学精品工程
  • 智慧城市SaaS平台/交通设施运行监测系统之桥梁运行监测、城市道路塌陷风险运行监测系统架构内容
  • 网络编程--TCP/UDP Socket套接字
  • 验证码流程
  • 【AI解读源码系列】ant design mobile——Space间距
  • 京东API分类接口实战指南:获取各类商品信息
  • 【大模型本地运行与部署框架】Ollama的API交互
  • Spring拦截器中@Resource注入为null的问题
  • PAT乙级_1120 买地攻略_Python_AC解法_含疑难点