-
Dart# Fin. OOP 의 심화(상속, 추상, Mixin)프론트/Dart 2025. 10. 7. 22:25
1️⃣ Recap — 클래스 기초 구조 복습
05_Recap.dart에서는 클래스와 생성자, 메서드, 필드를 간단히 복습합니다.
Dart에서는 class 키워드로 클래스를 정의하고, this를 통해 멤버 변수를 초기화합니다.class Player { final String name; int xp; Player(this.name, this.xp); void sayHello() { print("Hi, my name is $name"); } }→ Dart의 클래스는 매우 직관적이며, 생성자에서 매개변수에 this를 바로 사용해 필드를 초기화할 수 있습니다.
2️⃣ Cascade Notation (.. 연산자)
06_Cascade Notation.dart에서는 객체의 여러 속성과 메서드를 한 번에 호출하는 문법을 다룹니다.
var player = Player(name: 'jeongwon', xp: 1200) ..sayHello() ..xp = 2000 ..sayHello();→ .. 연산자는 동일한 객체를 계속 참조하면서 여러 메서드나 필드를 연속적으로 접근할 때 사용합니다.
→ 체이닝 호출과 비슷하지만, 함수 리턴값 대신 원래 객체를 반환한다는 점이 다릅니다.
3️⃣ Enums (열거형)
06_Enums.dart에서는 팀 구분과 같은 상수를 Enum으로 정의하는 예시가 있습니다.
enum Team { blue, red } class Player { final String name; final Team team; Player({required this.name, required this.team}); }→ enum은 제한된 값 집합을 정의할 때 사용하며, 비교나 조건문에서 실수를 줄이는 데 유용합니다.
4️⃣ Abstract Class (추상 클래스)
07_Abstract Class.dart에서는 추상 클래스를 이용해 공통 기능을 강제합니다.
abstract class Human { void walk(); } class Player extends Human { @override void walk() { print("Player is walking"); } }→ abstract 클래스는 인스턴스를 직접 만들 수 없으며, 상속받은 클래스가 메서드를 반드시 구현해야 합니다.
5️⃣ Inheritance (상속)
08_Inheritance.dart는 상속의 기본 구조를 다룹니다.
class Human { final String name; Human(this.name); void sayHello() => print("Hi, my name is $name"); } class Player extends Human { final int xp; Player({required String name, required this.xp}) : super(name); }→ : super(name)은 부모 생성자 호출이며, Dart에서 상속 시 부모 초기화를 반드시 명시해야 합니다.
6️⃣ Mixins
09_Mixins.dart에서는 여러 클래스의 기능을 조합하는 방법을 다룹니다.
mixin Strong { final double strength = 100.0; } mixin QuickRunner { void run() => print("Running fast!"); } class Player with Strong, QuickRunner {}→ mixin은 다중 상속 대신, 클래스에 기능을 “섞어 넣는” 방식입니다.
→ 상속(extends)과 달리 여러 개를 동시에 사용할 수 있습니다.
✍️ 정리
개념 핵심 키워드 설명
클래스 class 객체의 청사진, 필드와 메서드 포함 추상 클래스 abstract class 공통 규약 제공, 인스턴스 불가 상속 extends 부모 클래스 기능 상속 믹스인 with 다중 기능 조합 열거형 enum 상수 집합 정의 Cascade .. 동일 객체에 연속 접근 💡 포인트 요약
- Dart는 간결하고 읽기 쉬운 문법으로 객체지향 개념을 쉽게 표현할 수 있음.
- .. 연산자, enum, mixin 등은 실무 코드에서 자주 등장하는 편리한 문법.
- 추상 클래스와 상속, 믹스인을 함께 사용하면 구조적이고 재사용성 높은 코드 설계 가능.
'프론트 > Dart' 카테고리의 다른 글
Dart 5#. 클래스와 생성자 (0) 2025.10.06 Dart#4. 문법 기초 정리 (Optional Parameters, Null Safety, Typedef) (0) 2025.10.01 Dart#3. 함수 (0) 2024.11.03 Dart#2. 자료형 (0) 2024.10.29 Dart #1. Hello World (0) 2024.10.27