当前位置: 首页 > 面试题库 >

构造函数可以覆盖吗?

濮阳振海
2023-03-14
问题内容

我所知道的是,编译器在字节码中编写了一个默认的无参数构造函数。但是,如果我们自己编写,则该构造函数会自动调用。这种现象是构造函数压倒一切的吗?


问题答案:

您所描述的不是最重要的。如果您未指定默认构造函数,则编译器将创建一个默认构造函数。如果是子类,它将调用默认的父构造函数(super()),还将所有实例变量初始化为由该类型的默认值确定的默认值(数字类型为0,布尔值为false,对象为null) 。

当子类具有与超类的实例方法相同的名称,参数的数量/类型以及相同的返回类型时,将发生覆盖。在这种情况下,子类将 覆盖
超类的方法。有关此处覆盖的信息。



 类似资料:
  • 我使用默认构造函数从子类中设置recordId的值,最初没有使用lombok。最终我决定在这里使用构建器,但现在的问题是lombok构建器在内部覆盖了我的默认构建器,因此从未设置值。

  • 问题内容: 你能 声明这样 的函数吗? 然后像这样 重新声明 它… 这样可以覆盖函数吗? 可以吗 问题答案: 编辑 解决此答案未直接解决原始问题的评论。如果您是通过Google搜索到达的,请从此处开始 有一个名为override_function的函数可以实际使用。但是,由于此函数是Advanced PHP Debugger扩展的一部分,因此很难为生产使用提供参数。因此,我要说“否”,不可能以原始

  • 问题内容: 试图扩大Spock在工作中的吸引力并遇到此问题。实际上是试图为Groovy类编写单元测试,但是它调用了Java。静态方法调用私有构造函数。代码如下: “ SolrZkClient”来自第三方(Apache)Java库。由于它试图连接到ZooKeeper,因此我想对此单元测试进行模拟(而不是在单元测试的内部运行)。 我的测试毫不费力地进入了构造函数,但是我无法超越那个ctor: 反正有这

  • 问题内容: 是否有可能覆盖 全局 功能,从而在一定程度上影响 全局 功能? 据我所知,该函数在包装NodeJS脚本的函数中作为参数提供: 有什么方法可以修改功能吗? 这可能只会影响脚本所在的脚本。 我们如何在流程级别进行修改? 问题答案:

  • 问题内容: 说,我有一个Foo类,扩展了Bar类。我想略微推翻Foo的主持人。而且我什至都不知道Bar的构造函数的含义是什么。有没有办法做到这一点? 如果您听不懂,我的意思是: 有没有办法把一件简短而优雅的东西代替???在这段代码中?(也许是args / kwargs的一些变体) 问题答案: 输出:

  • 问题内容: 这是代码: 这是测试: 效果很好,该类已经过测试。但是Cobertura表示,该类的私有构造函数的代码覆盖率为零。我们如何向这样的私有构造函数添加测试覆盖率? 问题答案: 好吧,有很多方法可以使用反射等-真的值得吗?这是一个 永远不 应该 被调用 的构造函数,对吗? 如果您可以在类中添加注释或类似内容以使Cobertura理解不会被调用,请执行以下操作:我认为不值得人工添加覆盖范围。