gpt4 book ai didi

java - 从父类(super class)构造函数调用父类(super class)方法

转载 作者:行者123 更新时间:2023-12-01 08:05:44 24 4
gpt4 key购买 nike

我有一个关于以下代码片段的非常简单的问题。

public class SuperClass {

public SuperClass() {
this.test(); //Always invokes the overridden method in the sub-class.
}

public void test() {
System.out.println("test() in SuperClass.");
}
}

public final class SubClass extends SuperClass {

public SubClass() {
super();
}

@Override
public void test() {
System.out.println("test() in SubClass.");
}
}

public final class Test {

public static void main(String... args) {
SubClass subClass=new SubClass();
}
}

在此示例中,main() 中的唯一一行方法间接传递对父类(super class)构造函数的调用,并在其中尝试调用 test()方法为this.test() .

this.test()调用的方法然而,在父类(super class)构造函数中, SubClass 中的重写方法.

为什么该方法不调用this.test()在父类(super class)构造函数中调用父类(super class)本身中的自己的方法(尽管this指的是要调用this方法的当前实例)?

最佳答案

though[t] this refers to the current instance by which this method is to be invoked

确实如此,并且该实例的运行时类型是 SubClass,因此会调用 SubClass 的方法。

关于java - 从父类(super class)构造函数调用父类(super class)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com