栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Thread不是抽象类,而start()不是final?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Thread不是抽象类,而start()不是final?

为什么将Thread类实现为常规类,而不是将run()方法抽象为抽象类。

这个问题实际上归结为这样一个事实,即您应该始终偏向于继承而不是继承。

如果将该

Thread
类声明为
abstract
,该语言将必须提供另一个从它扩展的类,程序员可以使用它创建一个
Thread
。那么你的问题是,为什么这个类是
extends
Thread
没有
abstract
。如果该语言没有提供
extends
from的其他类
Thread
,则程序员将不得不创建自己的class,该类
extend
来自
Thread
and重写该
run()
方法。

如果不是,为什么该方法未在Thread类中声明为final?

我能给出的唯一可能的解释是,

start
当将类引入JDK时,该语言的开发人员看到了一些重写的​​用例。我使用的Java的第一个版本是1.5,而我个人没有遇到用例,在该用例中我发现需要重写
start
。正如JB
Nizet在回答中所说

如果今天从头开始重新设计Java,那么很有可能设计会有所不同



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号