java - 在子类对象java上调用父类的方法

标签 java oop

我有几个扩展其他类的类。它们都有一个共同的方法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/

相关文章:

java - TimerTask 是否在新线程中执行

oop - 关于何时使用lua冒号语法的问题

php - 什么时候应该实例化 Controller ?

java - 多个 API 调用 : Design Patterns

objective-c - OOP:设计菜单系统

java - java中的转换,request.getParameter

java - JPA - 非主键字段上的@OneToOne 关系不起作用

java - 通过 java 确定窗口显示编号和/或布局

java - 是否推荐使用 GAE 类型?

matlab - 为重载的 `end` 函数创建函数句柄