假设我有:
class Superclass {
//fields...
methodA() {...}
methodB() {...}
...
}
class Subclass extends Superclass {
//fields...
methodA() {
// Here I need to call methods A and B from superclass:
// For this, I can use supper
super.methodA();
super.methodB();
// Or I have to instantiate the superclass and use the instance
Superclass superclass = new Superclass();
superclass.methodA();
superclass.methodB();
}
它可以双向工作,但是我想知道哪种更好。这些方法中的任何一种都是不好的编程技术吗?我希望你能给我答案和论点。
最佳答案
super.methodA();
Superclass superclass = new Superclass();
superclass.methodA();
这两个方法A的调用在不同的实例上工作,因此它们是完全不同的。
super.methodA()
在当前实例上执行methodA
。 superclass.methodA()
在与当前实例无关的新methodA
实例上执行Superclass
。您几乎总是使用第一个选项。至于第二个选项,创建一个新实例,在该实例上调用一个方法,然后再也不用对该实例做任何事情是没有意义的。
关于java - 在子类的方法中本地调用父类(super class)方法时,使用“super”关键字还是使用父类(super class)实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31130635/