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 문서를 참고해요.