我想从儿子调用父方法,我不知道父方法是如何工作的:
父A
的方法为:myMethod(double d)
。
public class B extends A{
//overrides
public void myMethod(double d){
doSomthing();
super.myMethod(d);
}
public void anotherMethod(...){
super.myMethod(d);
}
}
instanceOfB.myMethod(d)
效果很好。
问题是instanceOfB.anotherMethod(...)
它只是执行instanceOfB.myMethod(d)
。
我希望B
的实例运行父级的myMethod
有什么建议吗?
答案 0 :(得分:0)
你做错了什么。它确实调用了super.myMethod()。我快速汇编了这段代码来测试
public class Test {
public static void main(String ... args) {
B b= new B();
b.anotherMethod(); //the output is 1 which is correct
b.myMethod(2); //the output is somth and then 2 which is correct
}
public static class A {
public void myMethod(double d) {
System.out.println(d);
}
}
public static class B extends A{
//overrides
public void myMethod(double d){
doSomthing();
super.myMethod(d);
}
private void doSomthing() {
System.out.println("somth");
}
public void anotherMethod(){
super.myMethod(1);
}
}
}