본문 바로가기
Dart/Study

Dart에서 상속 배우기: 초보자를 위한 가이드

by Maccrey Coding 2024. 7. 12.
반응형

객체 지향 프로그래밍 (OOP)의 핵심 개념 중 하나인 상속은 코드를 재사용하고 효율적으로 구성하는 데 매우 유용한 도구입니다. 

Dart에서 상속을 사용하면 여러 클래스 간의 공통적인 속성과 기능을 정의하고, 이를 기반으로 하위 클래스를 만들 수 있습니다. 

이렇게 하면 코드 작성 시간을 줄이고, 코드 유지 관리를 용이하게 하며, 코드의 이해도를 높일 수 있습니다.

이 블로그 게시글에서는 Dart에서 상속의 기본 개념과 실제 활용 방법을 초보자도 쉽게 이해할 수 있도록 자세히 살펴보겠습니다.

1. 상속이란 무엇일까요?

상속은 마치 부모로부터 유전자를 물려받는 것처럼, 한 클래스 (부모 클래스)가 다른 클래스 (자식 클래스) 에 자신의 속성과 기능들을 물려주는 개념입니다. 

상속을 통해 코드 재사용성을 높이고, 코드를 더욱 효율적으로 구성할 수 있습니다.

2. 상속을 사용하는 방법

Dart에서 상속을 사용하려면 extends 키워드를 사용합니다. 다음은 간단한 예시입니다.

class Animal {
  String name;
  int age;

  void eat() {
    print("$name is eating.");
  }
}

class Dog extends Animal {
  String breed;

  void bark() {
    print("$name is barking.");
  }
}
 

위 예시에서 Dog 클래스는 Animal 클래스를 상속받습니다. 즉, Dog 클래스는 name age 속성, 그리고 eat 메서드를 Animal 클래스로부터 물려받게 됩니다.

또한 Dog 클래스는 breed라는 자체 속성과 bark라는 자체 메서드를 추가로 정의합니다.

 

자식 클래스에서 상속받은 속성 사용

Dog dog = Dog("뽀로", 3);
dog.name; // "뽀로"
dog.age; // 3
dog.eat(); // 뽀로 is eating.
 

자식 클래스에서 추가된 속성 사용

dog.breed = "골든 리트리버";
dog.breed; // "골든 리트리버"
 

자식 클래스에서 상속받은 메서드 사용

dog.bark(); // 뽀로 is barking.
 

3. 상속의 장점

  • 코드 재사용성 향상: 상속을 통해 공통적인 코드를 한 번만 작성하고 여러 클래스에서 재사용할 수 있습니다. 이는 코드 작성 시간을 줄이고, 코드 유지 관리를 용이하게 합니다.
  • 코드 효율성 증대: 상속을 통해 코드를 더욱 효율적으로 구성할 수 있습니다. 불필요한 코드 중복을 줄이고, 코드의 명확성을 높일 수 있습니다.
  • 코드 이해도 증진: 상속을 통해 코드의 계층 구조를 명확하게 만들 수 있습니다. 이는 코드를 이해하고 유지 관리하는 데 도움이 됩니다.

4. 상속 활용 사례

  • 동물 계층 구조: Animal 클래스를 기반으로 Dog, Cat, Bird 등 다양한 동물 클래스를 만들 수 있습니다.
  • UI 위젯 계층 구조: Widget 클래스를 기반으로 Button, TextField, Image 등 다양한 UI 위젯 클래스를 만들 수 있습니다.
  • 네트워크 통신 계층 구조: NetworkRequest 클래스를 기반으로 GETRequest, POSTRequest, PUTRequest 등 다양한 네트워크 요청 클래스를 만들 수 있습니다.

5. 주의 사항

  • 상속은 클래스 간의 is-a 관계를 나타냅니다. Dog is-a Animal 처럼, 자식 클래스는 항상 상속받은 클래스의 모든 특성과 기능을 포함해야 합니다.
  • 상속은 클래스 간의 결합도를 높일 수 있습니다. 따라서 상속을 사용할 때는 신중하게 판단해야 합니다.
  • 다중 상속은 지원하지 않습니다. Dart에서는 한 클래스가 여러 개의 부모 클래스를 상속받을 수 없습니다.
  • 추상 클래스와 인터페이스를 활용하여 코드의 계층 구조를 더욱 효과적으로 설계할 수 있습니다.

6. 마무리

이 블로그 게시글에서는 Dart에서 상속의 기본 개념과 실제 활용 방법을 초보자도 쉽게 이해할 수 있도록 자세히 살펴보았습니다.

상속을 활용하여 코드를 재사용하고 효율적으로 구성함으로써 더욱 훌륭한 Dart 프로그래머가 되어나가시길 바랍니다.

반응형