Java本地嵌套类和访问超级方法

时间:2012-01-13 16:46:35

标签: java class nested super

我有以下类层次结构场景; A类有一个方法,B类扩展了A类,我想从本地嵌套类中调用超类的方法。 我希望骨架结构更清楚地描绘场景 Java是否允许此类调用?

class A{
  public Integer getCount(){...}
  public Integer otherMethod(){....}
}

class B extends A{
  public Integer getCount(){
    Callable<Integer> call  = new Callable<Integer>(){
      @Override
      public Integer call() throws Exception {
         //Can I call the A.getCount() from here??
         // I can access B.this.otherMethod() or B.this.getCount()
         // but how do I call A.this.super.getCount()??
         return ??;
      }
   }
    .....
  }
  public void otherMethod(){
  }
}

3 个答案:

答案 0 :(得分:21)

您可以使用B.super.getCount()A.getCount()中致电call()

答案 1 :(得分:5)

您必须使用B.super.getCount()

答案 2 :(得分:4)

的内容
package com.mycompany.abc.def;

import java.util.concurrent.Callable;

class A{
    public Integer getCount() throws Exception { return 4; }
    public Integer otherMethod() { return 3; }
}

class B extends A{
    public Integer getCount() throws Exception {
        Callable<Integer> call  = new Callable<Integer>(){
            @Override
            public Integer call() throws Exception {
                   //Can I call the A.getCount() from here??
                   // I can access B.this.otherMethod() or B.this.getCount()
                   // but how do I call A.this.super.getCount()??
                   return B.super.getCount();
            }
       };
       return call.call();
    }   
    public Integer otherMethod() {
        return 4;
    }
}

也许?