首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么构造函数不能是最终的?

为什么构造函数不能是最终的?
EN

Stack Overflow用户
提问于 2016-03-14 19:12:07
回答 2查看 2K关注 0票数 0

我们都知道构造函数不能被重写。那么当我们将一个构造函数声明为final时,为什么会出现编译时错误呢?As final关键字也允许构造函数不被重写。

EN

回答 2

Stack Overflow用户

发布于 2016-03-14 19:33:24

只允许publicprivateprotected作为修饰符。根据JLS,不允许使用final。java中的final用于限制扩展。

在java中,constructors不能被覆盖。超类的构造函数总是从基类的任何构造函数(隐式或显式)调用。final用于防止任何方法被重写,构造函数与普通方法不同,也不能为overridden。将constructors设置为final没有任何意义。这样做不会被定义为任何功能。

如果你想阻止它的扩展,你可以将这个类设置为final。如果您希望限制类的构造函数,只需将其设置为私有即可。

票数 0
EN

Stack Overflow用户

发布于 2016-03-14 19:41:06

不能将任何Constructors声明为final。当应用于方法时,编译器总是会给出"modifer final not allowed“类型的错误,这意味着该方法不能在子类中被重写。构造函数不是普通的方法。(不同的规则适用)另外,构造函数永远不会被继承。因此,宣布它为最终版本是没有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35985942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档