클래스 주변 코드에 동일한 시그니처를 가진 메서드가 있는 경우, 익명, 내부 또는 지역 클래스의 상위 메서드에 대한 호출을 보고합니다. 실제로는 상위 클래스의 메서드에 대한 호출인 경우에도, 주변 코드의 메서드가 호출된 것처럼 보일 수 있습니다.

코드의 의도를 명확히 하려면 명시적 super 한정자를 메서드 호출에 추가하는 것이 좋습니다.

예:


  class Parent {
    void ambiguous(){}
  }

  class Example {
    void ambiguous(){}

    class Inner extends Parent {
      void example(){
        ambiguous(); //warning
      }
    }
  }
  

빠른 수정을 적용한 후:


  class Parent {
    void ambiguous(){}
  }

  class Example {
    void ambiguous(){}

    class Inner extends Parent {
      void example(){
        super.ambiguous();
      }
    }
  }