我有几个课程可以扩展其他课程.它们都有一个共同的方法结果.如果我有foobarbaz的实例,是否可以调用其父/祖父母的结果方法?
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