java - 当没有明确定义的父类(super class)时,为什么要在父类(super class)中使用 super 调用

标签 java class super

package Geometry;

public abstract class GeometryFigures{

protected double surfaces;
protected double perimeter;

public GeometryFigures(double surfaces, double perimeter) {

    super(); //**<---Why use super call here?**

    this.surfaces= surfaces;
    this.perimeter= perimeter;
}

public double getSurfaces() {
    return surfaces;
}

public double getPerimetre() {
    return perimeter;
}


}

所以基本上所有内容都在标题中。我想知道为什么我需要在父类(super class)中使用 super() 。

感谢您的帮助。

最佳答案

在这种情况下,super() 指的是 Object 的构造函数,它是每个类的父类(super class)。

实际上你并不需要调用它,因为默认情况下,如果没有调用其他父类(super class)构造函数,构造函数总是尝试调用 super() 。

我见过一些代码生成器自动添加它,我的猜测是,它被认为是最佳实践,因为它明确提醒 super() 将被调用。

关于java - 当没有明确定义的父类(super class)时,为什么要在父类(super class)中使用 super 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35003552/

相关文章:

python - 收到错误消息说 super 需要 1 个参数,但给出了 0 个参数?

java - 同步执行存储过程

java - 翻译应用程序 Android

java - 如何关闭并重新配置使用 NettyAsyncHttpProvider 的 AsyncHttpClient

class - 看起来我正在实例化这个 SpeechAPI 接口(interface)。这怎么可能?

C++ 类组合 - 何时执行构造函数和析构函数

mysql - 如何从数据库图制作类图?

java - 即使我不在子类中调用 super() ,程序也会抛出错误,因为必须定义一个显式构造函数

java - 重构、使用 super 和定义

java - 在 Elasticsearch 中加载自定义同义词文件时出错