Java - 子类构造函数中的显式 super()

标签 java inheritance constructor superclass super

<分区>

我发现了一些类似的主题,例如here ,但他们没有完全回答我的问题。问题很简单:

在子类的构造函数中调用 super() 是一种好习惯吗?我当然知道,如果我没有明确说明,编译器会为我完成,但我只是在最佳实践的背景下提问。您是否认为在每个子类的构造函数中调用 super() 是“形式对实质的胜利”?

我正在处理包含 uses 策略的代码,所以我明白,对于许多程序员来说,这根本不重要……对我来说,现在也不重要了,但也许我应该改变它……

最佳答案

在我看来,显式的 super() 调用只会污染代码。默认的 super() 调用就是为了这个目的而发明的——缩短代码。查看 SE 库源代码,super() 几乎从未使用过,例如

public HashMap(int initialCapacity, float loadFactor) {
   if (initialCapacity < 0)
   ...

关于Java - 子类构造函数中的显式 super(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17020570/

相关文章:

c# - 为什么 SecondChild 类的覆盖方法没有被调用两次?

java - 如何找到数组中最接近的元素

java - 只允许父工厂方法实例化子类

c++ - 构造函数初始化列表中的循环依赖

java - 使用已检查的异常重写方法

java - Java 中的多态性以及从这些类创建对象

go - 是否有结构类型的构造函数接口(interface)?

java - 老定时器不停歇

java - NetBeans 找不到 Applet 类

java - 方法 String.getBytes() 是 big endian 还是 litter endian?