IT News/Flutter & Dart

Dart 언어에서 implements 예제

skyLove1982 2022. 3. 10. 00:40
반응형

 Using implements

클래스 상속은 extends 를 사용하지만 implements 와 차이가 있습니다.

implements 를 사용하는 경우는 클래스의 모든 변수와 함수 등을

모두 상속받는 것이 아니라 단지 타입을 상속 받기 위한 것인데요.

implements 하게되면 implements 클래스의 함수 등을 구현해주어야 합니다.

인터페이스(interface) 처럼 말이죠.

 

bird(새) 와 duck(오리) 클래스를 implements 해야하는 경우가 있다고 가정해보겠습니다.

둘다 모두 animal(동물)입니다. 

bird 와 duck 은 모두 날 수(fly) 있지만 duck 은 swim(수영)할 수 있습니다.

아래의 예제 코드를 확인하세요.

class Animal {}

// behaviors
abstract class Flyer {
  void fly() => print('I can fly!');
}

abstract class Swimmer {
  void swim() => print('I can swim!');
}

class Bird extends Animal implements Flyer {
  @override
  void fly() => print('I can fly!');
}

class Duck extends Animal implements Swimmer, Flyer {
  @override
  void fly() => print('I can fly!');

  @override
  void swim() => print('I can swim!');
}


void main(){
  Bird a = new Bird();
  Duck b = new Duck();
  a.fly();
  b.fly();
  b.swim();
}

 

 

참고 : https://medium.com/@manoelsrs/dart-extends-vs-implements-vs-with-b070f9637b36

 

Dart: extends vs implements vs with

a short way to understand mixins

medium.com

 

반응형