본문 바로가기
Dev/Flutter

[Flutter] 학습 (8) - 클래스(Class) - 3

by steady.dev 2023. 3. 5.

상속

상속은 객체 지향 프로그래밍에서 클래스가 부모 클래스로부터 속성과 메서드를 상속받는 메커니즘입니다.

Flutter에서는 extends 키워드를 사용하여 클래스가 다른 클래스로부터 상속받을 수 있습니다.

 

아래는 Flutter에서의 상속 예시입니다.

class Animal {
  void eat() {
    print('동물이 먹고 있습니다');
  }
}

class Dog extends Animal {
  void bark() {
    print('멍멍!');
  }
}

void main() {
  Dog dog = Dog();
  dog.eat(); // "동물이 먹고 있습니다" 출력
  dog.bark(); // "멍멍!" 출력
}

 

위 예제에서 Animal 클래스는 콘솔에 메시지를 출력하는 eat 메서드를 가지고 있습니다. Dog 클래스는 Animal 클래스를 확장하고 bark 메서드를 추가합니다. Dog 객체를 생성하고 eat 및 bark 메서드를 호출하면 적절한 메시지가 콘솔에 출력됩니다.

메서드 오버라이드

메서드 오버라이드란 서브클래스가 이미 슈퍼클래스에 정의된 메서드의 새로운 구현을 제공할 수 있는 기능입니다.

 

Flutter에서는 @override 어노테이션을 사용하여 메서드를 오버라이드할 수 있습니다.

 

아래는 Flutter에서의 메서드 오버라이드 예시입니다:

 

class Animal {
  void eat() {
    print('동물이 먹고 있습니다');
  }
}

class Dog extends Animal {
  @override
  void eat() {
    print('강아지가 먹고 있습니다');
  }

  void bark() {
    print('멍멍!');
  }
}

void main() {
  Dog dog = Dog();
  dog.eat(); // "강아지가 먹고 있습니다" 출력
  dog.bark(); // "멍멍!" 출력
}

 

위 예제에서 Dog 클래스는 상위 클래스인 Animal에 정의된 eat 메서드를 오버라이드합니다. 

Dog 객체를 생성하고 eat 및 bark 메서드를 호출하면 Animal 클래스에서 정의된 eat 메서드와는 다른 메시지가 콘솔에 출력됩니다.

 

 

댓글