我有几个扩展其他类的类。它们都有一个共同的方法result
。如果我有一个 foobarbaz
实例,是否可以调用其父/祖 parent 的 result
方法?
public class Foo {
protected int resultA;
public void calc(){ resultA=...}
public void result(){ return resultA; }
}
public class Foobar extends Foo{
protected int resultA;
public void calc(){
super.calc();
resultB=...;
}
public void result(){ return resultB; }
}
public class Foobarbaz extends Foobar{
protected int resultA;
public void calc(){
super.calc();
resultC=...;
}
public void result(){ return resultC; }
}
我要解决的问题是每个类除了其父类之外还进行一些额外的计算。如果用户想要所有 3 个对象的结果,CalculationManager 知道只需要初始化和计算 Foobarbaz。然后它将对 Foobarbaz 的引用返回给任何请求 Foo 的人,因为 Foobarbaz 也会有 Foo 的结果。
类似于:
CalculationManager.add(Foo,Foobar,Foobarbaz);
//The following 3 calls return the same reference to a Foobarbaz object
Foo res1=CalculationManager.get(Foo);
Foobar res2=CalculationManager.get(Foobar);
Foobarbaz res3=CalculationManager.get(Foobarbaz);
CalculationManager.doCalc();
//Iterate over each object to get result with the same method .result()
res1.result(); //---> resultA
res2.result(); //---> resultB
res3.result(); //---> resultC
最佳答案
你需要在每节课中使用这样的东西:
Foo:
printParent()
{
super.printParent();
}
FooBar:
printParent()
{
super.printParent();
}
FooBarBaz:
printParent()
{
print(); // this is the top most class
//Incredibly fragile!
}
关于java - 在子类对象java上调用父类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6296190/