annotate_overrides

annotate_overrides

Dart 애널라이저가 생성하는 annotate_overrides 진단에 대한 설명이에요.

출처: 원문

본문

멤버가 상속된 멤버를 오버라이드하지만 @override로 주석 처리되지 않았을 때 이 진단이 발생해요.

설명

애널라이저는 멤버가 상속된 멤버를 오버라이드하는데 @override로 주석 처리되지 않았을 때 이 진단을 생성해요.

예시

아래 코드는 B 클래스의 m 메서드가 A 클래스의 같은 이름의 메서드를 오버라이드하지만 의도적인 오버라이드로 표시되지 않았기 때문에 이 진단을 만들어요.

class A {
  void m() {}
}

class B extends A {
  void m() {}
}

일반적인 수정 방법

서브클래스의 멤버가 슈퍼클래스의 멤버를 오버라이드하려는 의도라면 @override 주석을 추가해요.

class A {
  void m() {}
}

class B extends A {
  @override
  void m() {}
}

서브클래스의 멤버가 슈퍼클래스의 멤버를 오버라이드하려는 의도가 아니라면 멤버 중 하나의 이름을 바꿔요.

class A {
  void m() {}
}

class B extends A {
  void m2() {}
}

더 알아보기

@override 애너테이션과 오버라이드에 대한 더 자세한 내용은 Dart 언어 문서와 API 문서를 참고해요.