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

发布于 2024-12-27 01:14:46 字数 634 浏览 1 评论 0原文

我有以下类层次结构场景;类 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(){
  }
}

I have following class hierarchy scenario; Class A has a method and Class B extends Class A, where I want to call a method from super class from a locally nested class.
I hope a skeletal structure picture the scenario more clearly
Does Java permit such calls?

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(){
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心如荒岛 2025-01-03 01:14:47

您可以在call()中使用B.super.getCount()调用A.getCount()

You can just use B.super.getCount() to call A.getCount() in call().

蘸点软妹酱 2025-01-03 01:14:47

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

You've to use B.super.getCount()

番薯 2025-01-03 01:14:47

也许是类似的事情

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;
    }
}

Something along the lines of

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;
    }
}

perhaps?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文