

Dart 문법 OOP - 인터페이스Dart/OOP2024. 8. 20. 21:08
Table of Contents
인터페이스란?
인터페이스는 공통으로 필요한 기능을 정의만 해두는 역할을 한다.
상속이 공유되는 기능을 이어받는 개념이라면, 인터페이스는 "이런 기능이 필요하다"라고 선언만 하는 것이다.
Dart에서의 인터페이스 특징
- 별도의 키워드 없음: Dart에는 인터페이스를 지정하는 별도의 키워드(예: Java의 interface)가 없다.
- 클래스로 정의: Dart에서는 모든 클래스가 암묵적으로 인터페이스로 사용될 수 있다.
- 다중 구현 가능: 상속은 단 하나의 클래스만 가능하지만, 인터페이스는 여러 개를 구현할 수 있다.
- 모든 메서드 구현 필요: 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메서드를 반드시 구현해야 한다.
Dart에서의 인터페이스 구현
예를 들어, Idol 클래스를 인터페이스로 사용하는 GirlGroup 클래스를 만들어 보겠다:
여기서 주목해야 할 점:
- implements 키워드 사용: GirlGroup 클래스는 Idol 클래스가 정의한 모든 기능을 다시 정의했다.
- 모든 메서드와 속성 재정의: name, membersCount, sayName(), sayMembersCount()를 모두 재정의했다.
인터페이스 vs 상속
"상속과 인터페이스가 뭐가 다르지?"라는 의문이 들 수 있다.
주요 차이점은 다음과 같다:
- 상속:
- 부모 클래스의 모든 기능이 자동으로 상속된다.
- 필요한 경우에만 메서드를 오버라이드한다.
- 단일 상속만 가능하다.
- 인터페이스:
- 모든 기능을 반드시 다시 정의해야 한다.
- 여러 인터페이스를 동시에 구현할 수 있다.
- 구현해야 할 기능을 명확히 정의하는 용도이다.
다중 인터페이스 구현
Dart에서는 여러 인터페이스를 동시에 구현할 수 있다.
예를 들어:
여러 인터페이스를 구현할 때는 쉼표(,)로 구분하여 나열한다.
인터페이스 사용의 이점
- 일관성 보장: 인터페이스를 통해 특정 메서드의 존재를 강제할 수 있다.
- 다중 구현: 여러 인터페이스를 구현하여 다중 상속과 유사한 효과를 얻을 수 있다.
- 코드 계약: 인터페이스는 "이 클래스는 이런 기능을 반드시 가져야 한다"는 일종의 계약 역할을 한다.
- 모듈화: 인터페이스를 통해 코드를 더 모듈화하고 유연하게 만들 수 있다.
'Dart > OOP' 카테고리의 다른 글
Dart 문법 OOP - 추상 (0) | 2024.08.21 |
---|---|
Dart 문법 OOP - 믹스인 (0) | 2024.08.21 |
Dart 문법 OOP - 오버라이드 (0) | 2024.08.20 |
Dart 문법 OOP - 상속 (0) | 2024.08.20 |
Dart 문법 OOP - 게터와 세터 (0) | 2024.08.20 |

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