抽象类基础知识

简介: 抽象类基础知识

1.抽象类没有方法体

1. 抽象类,抽象方法是什么样的?

都是用abstract修饰的;抽象方法只有方法签名,不能写方法体

//抽象类
public   abstract class A {
    public abstract void run();//只有方法签名,没有方法体
}


2.抽象类有哪些注意事项和特点?

抽象类中可以不写抽象方法,但有抽象方法的类一定是抽象类


类有的成员(成员变量,方法,构造器) 抽象类都具备


抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现, 一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类


3.抽象类的应用场景和好处什么?

父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法, 交给子类去重写实现,我们做出这样的抽象类,就是为了更好的支持多态


4.抽象类的常见应用场景:设计模板方法设计模式

1.模板方法设计模式解决了什么问题?

      解决方法中存在重复代码的问题


2.模板方法设计模式怎么写?

定义一个抽象类,在里面定义两个方法,一个是模板方法:放相同的代码;一个是抽象方法:具体实现交给子类,由子类完成子类的特定需求


3.模板方法建议用什么关键字修饰?为什么?

建议用final关键字修饰,final修饰的方法不可再被更改


目录
相关文章
|
存储 搜索推荐 人机交互
Qt鼠标事件全面解析:从基础到实战
Qt鼠标事件全面解析:从基础到实战
2295 0
|
8月前
|
存储 前端开发 JavaScript
深入理解 ECMAScript 2024 新特性:Promise.withResolvers
ECMAScript 2024 引入了 `Promise.withResolvers`,简化了手动创建 `Promise` 时管理 `resolve` 和 `reject` 的复杂性。本文详细介绍其设计背景、使用方式,并通过多个实际案例展示其优势。该方法减少了代码冗余和潜在错误,使异步任务管理更加直观和简洁。未来,这一特性有望为前端开发带来更多灵活性和便利性。
156 37
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
466 7
|
10月前
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
173 5
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
394 0
|
11月前
|
前端开发 安全 关系型数据库
PHP在Web开发中的应用及其优势###
【10月更文挑战第16天】 — 本文探讨了PHP在现代Web开发中的广泛应用及其显著优势。通过分析PHP的核心特性,如灵活性、易用性和广泛的应用支持,阐述了为何PHP成为众多开发者和公司的首选技术。文章还介绍了PHP与其他编程语言的比较,并展望了其未来的发展趋势。 ###
178 2
|
11月前
|
网络协议 安全 应用服务中间件
阿里云宝塔面板打不开是什么情况
阿里云宝塔面板打不开是什么情况
|
机器学习/深度学习 运维 安全
容器化部署的运维之道
在当今快速发展的软件行业,容器技术已成为推动持续集成和持续交付的关键因素。本文深入探讨了容器化部署的优势、挑战以及最佳实践,旨在为运维人员提供一套全面的指导方案,帮助他们更好地利用容器技术优化部署流程,提升系统的稳定性与效率。
197 27
|
SQL 存储 分布式计算
|
前端开发 Java
CompletableFuture的高级用法与实战
【4月更文挑战第20天】
601 1