从具有相同名称的Thread中调用父方法

时间:2019-11-29 08:34:58

标签: java multithreading polymorphism

我需要调用一个名称与线程方法之一相同的方法。精简示例:

class A {
  public void getState() {
    System.out.println("Okay"); //expected to get called
  }
  public void exampleCall() {
    new Thread() {
      @Override public void run() {
        getState(); //gives Thread.getState instead
      }
    }.start();
  } 
}

如何在run()中调用A.getState()?

1 个答案:

答案 0 :(得分:1)

由于您位于匿名内部类内部,因此需要使用(有点令人困惑)语法明确指定封闭的外部类:

A.this.getState();

A.this的有效含义是“包含此内部类的封闭A实例”。