每天一个知识点(六)抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?

简介: 抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?

微信搜索《Java鱼仔》,每天一个知识点不错过


(一)每天一个知识点


抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?


(二)结论


抽象类不必须有抽象方法,但如果一个类包含抽象方法,则该类必须是抽象类。


抽象类不能用final修饰,因为抽象类必须被继承,而被final修饰的类不能被继承。


(三)再多学一点


虽然几乎每个程序员都知道抽象类,但是实际开发中抽象类对大多数人来说就只是一个概念,用到的机会很少。理由也很简单,抽象类是抽取共性需求而来的,即使没有抽象类,对业务的实现也没有影响。但是如果合理应用抽象类,能增强代码的重用性,更加有效地解决复杂需求。


继续回到题目:抽象类必须要有抽象方法吗?


当然不必须有,甚至于一个抽象类可以没有任何一个抽象方法,这个类除了不能被实例化之外,和普通的类几乎没有任何区别。


但是如果一个抽象类中有抽象方法,那么他的子类必须要实现抽象方法。


第二个问题:抽象类可以使用final修饰吗?


当然不可以,通过理解抽象类的作用我们就发现了,抽象类必须要被继承,如果用final修饰抽象类,这个抽象类就无法被继承,自然就无法使用了。



相关文章
|
存储 数据挖掘 BI
ODS,DWD,ADS是什么意思
ODS,DWD,ADS是什么意思
4403 0
|
4月前
|
存储 虚拟化 iOS开发
VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版
VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版
489 0
VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版
|
7月前
|
数据可视化 API 数据库
低代码是什么?2025低代码技术详解:平台分类、用户群体与发展趋势分析
低代码(Low Code)是一种通过可视化工具和预构建组件,以少量或无代码快速开发应用的技术。2014年Forrester定义其为“用最少手工编码快速开发并部署应用的技术”,随后Gartner推广aPaaS/iPaaS概念推动其发展。
|
8月前
|
移动开发 前端开发 JavaScript
H5 页面与 Web 页面的制作方法
H5页面制作利用HTML5、CSS3和JavaScript技术,结合H5编辑器或框架(如Adobe Dreamweaver、Ionic),注重移动设备兼容性与响应式布局。Web页面制作则基于传统HTML、CSS和JavaScript,借助文本编辑器或IDE完成开发。两者区别在于技术版本、交互性和浏览器支持:H5更互动、现代,但可能不兼容旧浏览器;Web页面更静态、兼容性广。根据需求选择:高交互选H5,广泛兼容选Web。
1066 6
微博自动发布脚本,微博批量发布插件,关注私信点赞工具
这是一套微博营销自动化工具源码,可实现多账号同时发布微博、点赞、关注与私信功能,通过随机内容发布和延迟设置
|
存储 固态存储 芯片
计算机中内存与存储
【7月更文挑战第28天】
2547 1
|
算法 计算机视觉
【目标跟踪】一图看懂DeepSORT大流程
【目标跟踪】一图看懂DeepSORT大流程
1159 1
|
缓存 JavaScript 前端开发
理解React中Fiber架构(二)
自从React16版本更新了Hook用法,同时引入了新的Fiber架构去重构整个渲染和事件处理过程,React团队引入Hook是为了更好剥离业务代码,让开发能更加友好的抽象代码,达到低耦合的函数组件目的,那么重构Diff算法,引入Fiber架构是为了什么呢? 其实只是为了能够一个目标快速响应,原先Diff算法时间复杂度为O(n3) O(n^3)O(n3) ,最后经过Fiber重构达到了O(n)O(n)O(n),这里面具体有什么门道,值得我们去深入研究一下。
684 0
|
算法 Java
敏感词过滤算法-前缀树-java
敏感词过滤算法-前缀树-java
580 0
|
存储 Linux 调度
Linux部署KVM虚拟化平台
Linux部署KVM虚拟化平台
538 0