gpt4 book ai didi

java - 在不覆盖方法时使用 super.method() ?

转载 作者:搜寻专家 更新时间:2023-11-01 01:33:09 24 4
gpt4 key购买 nike

是否总是使用 super 从父类(super class)调用方法,即使我没有重写该方法,这是否是一种常见的做法?

假设

public class Parent{
public void method() {

}
}

所以

public class Child extends Parent {
public void someMethod() {
super.method();
}
}

public class Child extends Parent {
public void someMethod() {
method();
}
}

感谢您的输入。

最佳答案

调用 super 告诉 JVM 显式查找方法的父类版本。继续你的例子,如果你只是打电话

method()

在查看父类之前,JVM 将首先在调用类中搜索该方法(在本例中为 Child)。另一方面,如果你调用

super.method()

然后 JVM 将显式地查看父类的实现,即使 Child 有一个名为 method() 的方法。

将这两个想法放在一起,当您打算调用父类的方法时,您可能应该始终使用 super。如果您的类没有重写该方法,那么您可以在没有 super 的情况下调用。但是,如果有人稍后重构您的类并覆盖该方法,那么即使这样也会出现问题。

关于java - 在不覆盖方法时使用 super.method() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157836/

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