java - 这里调用父类(super class)构造函数的是什么?

标签 java inheritance constructor superclass super

我在寻找考试准备问题时遇到了这段代码。 我不明白什么是调用父类(super class)构造函数 在这段代码中?

输出是 ---> feline cougar cc

THL

        public class Feline{

        public String type = "f ";

        public Feline(){
            System.out.print("feline ");
        }
        }

-

    public class Cougar extends Feline {

    public Cougar(){
            System.out.print("cougar ");
    }

    public static void main(String[] args){
            new Cougar().go();                    
    }                                                                                     
    void go(){                            
            type = "c ";                                
            System.out.print(this.type + super.type);
    }
    }

最佳答案

当您有一个扩展其他类的类时,例如Cougar extends Feline必须在构造函数的顶部调用父类(super class)。当您不编写该构造​​函数时,Java 会假定您打算调用默认的父类(super class)构造函数。所以你的构造函数:

public Cougar(){
    System.out.print("cougar ");
}

实际上解释为:

public Cougar(){
     super();
     System.out.print("cougar ");
}

因此调用父类(super class)构造函数。值得注意的是,由于所有类都是 Object 类的扩展,因此在您将编写的每个构造函数的开头都会调用一个父类(super class)构造函数 - 无论是您的显式构造函数已经包含带或不带参数,或者默认的父类(super class)构造函数(如果您未指定)。

关于java - 这里调用父类(super class)构造函数的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28866086/

相关文章:

java - Firebase Java SDK - 多个 ChildEventListener 排队

java - 模式访问者 : Abstract class needs a function

java - 来自服务器的 Android 搜索建议

java - 如何存储由构造函数创建的类的实例,以便稍后可以调用 in 中的变量?

java - Java弱引用生命周期长

javascript - 使用 ES6 类继承进行参数化验证的值

python - PyQt - QLabel 继承

node.js - 检查nodejs中的继承

使用指向同一类对象的指针的 C++ 类构造函数

inheritance - (Kotlin)将参数从数据类构造函数传递给 super 构造函数?