public class Cls1{
public foo(){
doX();
}
}
public class Cls2{
public foo(){
doY();
}
}
Cls2 cls = new Cls2();
cls.foo();
当用户使用foo调用函数时,有没有办法在java中运行java运行doX和doY?
答案 0 :(得分:5)
是的,但您必须明确地这样做:
public class Cls1{
public foo{
doX();
}
}
public class Cls2 extends Cls1 {
public foo{
super.foo();
doY();
}
}
注意:我认为你的意思是让Cls2扩展Cls1,否则你的问题根本没有意义。
答案 1 :(得分:3)
public class Cls1 {
public foo{
doX();
}
}
public class Cls2 extends Cls1 {
public foo{
super.foo();
doY();
}
}
Cls2 cls = new Cls2();
cls.foo();
答案 2 :(得分:1)
private class Cls2 extends Cls1 {
public void foo {
doY();
super.foo();
}
}
答案 3 :(得分:1)
首先,我认为你的意思是:
public class Cls2 extends Cls1{
是的,有:
public (something?) foo(){
super.foo();
doY();
}
super关键字允许访问超类的方法。如果它只是自己调用:
super(...);
然后它调用超类的构造函数。
答案 4 :(得分:0)
假设Cls1
和Cls2
以某种方式相互继承,您可以使用关键字super
来调用超类的方法实现,例如,如果您想要在派生类中执行两个函数。
答案 5 :(得分:0)
如果doX()和doY()是静态导入的(因为它们没有在Cls1或Cls2中定义,这是我能想到的这个程序编译的唯一方法),那么你可以创建一个新的类一个方法foo,它在不使用继承的情况下调用doX和doY。然而,那些名为foo的方法与彼此无关。