

Dart 문법 OOP - 오버라이드Dart/OOP2024. 8. 20. 21:03
Table of Contents
오버라이드란?
오버라이드(override)는 부모 클래스 또는 인터페이스에 정의된 메서드를 자식 클래스에서 재정의할 때 사용된다.
이를 통해 자식 클래스는 부모 클래스의 메서드를 자신의 필요에 맞게 변경하거나 확장할 수 있다.
Dart에서의 오버라이드 구현
Dart에서는 override 키워드를 사용하여 메서드 오버라이드를 명시적으로 표시할 수 있다.
그러나 Dart의 특징 중 하나는 override 키워드를 생략할 수 있다는 점이다.
이전에 사용했던 Idol 클래스를 상속받아 메서드 오버라이드를 구현해 보겠다:
여기서 주목해야 할 점:
- @override 어노테이션 사용:
- 부모 클래스에 이미 존재하는 메서드를 자식 클래스에서 재정의할 경우, @override 어노테이션을 사용한다.
- 이를 "메서드 재정의"라고도 한다.
오버라이드된 메서드와 원본 메서드의 사용
이제 GirlGroup 클래스의 인스턴스를 생성하고 메서드를 호출해 보겠다:
실행 결과:
저는 여자 아이돌 블랙핑크입니다. // ① 오버라이드된 메서드 실행
4명의 멤버가 있습니다. // ② 원본 메서드 실행
- ① sayName() 메서드: 오버라이드되었으므로 GirlGroup 클래스에서 재정의된 버전이 실행된다.
- ② sayMembersCount() 메서드: 오버라이드하지 않았으므로 Idol 클래스에 정의된 원본 버전이 실행된다.
오버라이드의 특징과 주의사항
- 자동 오버라이드: Dart에서는 부모 클래스나 인터페이스에 이미 존재하는 메서드명을 사용하면, @override 어노테이션을 생략해도 메서드가 자동으로 오버라이드된다.
- 명시적 오버라이드 권장: 하지만 @override 어노테이션을 명시적으로 사용하는 것이 좋다. 이는 다음과 같은 이점이 있다:
- 코드의 가독성 향상
- 의도적인 오버라이드임을 명확히 표시
- 실수로 인한 오버라이드 방지
- IDE의 지원을 받아 오류를 쉽게 발견
- 시그니처 일치: 오버라이드하는 메서드의 시그니처(매개변수 타입, 반환 타입)는 부모 클래스의 메서드와 일치해야 한다.
'Dart > OOP' 카테고리의 다른 글
Dart 문법 OOP - 믹스인 (0) | 2024.08.21 |
---|---|
Dart 문법 OOP - 인터페이스 (0) | 2024.08.20 |
Dart 문법 OOP - 상속 (0) | 2024.08.20 |
Dart 문법 OOP - 게터와 세터 (0) | 2024.08.20 |
Dart 문법 OOP - private 변수 (0) | 2024.08.20 |

@codeJunH :: codeJunH의 IT 공부 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!