프로그래밍 공부 메모/flutter

mixin / with는 무엇인가?

jjs815 2022. 11. 27. 18:09
with 키워드는  extends(상속)와 implements(구현)의 특징을 모두 갖고 있습니다.
with는 여러 개의 부모 클래스를 가질 수 있으며, (예 implements)
각 메소드를 일일이 구현하지 않더라도 부모에서 구현된 메소드 호출을 할 수 있습니다. (예 extends)
 
mixin 키워드는 클래스 생성시 생략 가능하며 필요시 아래와 같이 정의한 후 사용 가능
실사용시 with 키워드를 사용해서 해당 클래스에 연결
 
※주의사항
- 클래스의 상속 개념이 있는데 사용하는 이유? 제약조건을 따르지 않고 즉각적으로 민첩하게 대처가 가능하다
복잡한 상속 관계를 따지지 않고 다른 클래스에서 비슷한 함수 또는 변수를 가져와 쉽게 구현하는 것
mixin Agility{
  var speed = 10;
  
  void sitDown(){
    print('sitting down....');
  }
}

class Mammal{
  void breathe(){
    print('Breathe in .... out');
  }
}

class Person extends Mammal with Agility{
  
  String name;
  int age;
  
  Person(this.name,this.age);
  
}

void main(){
 final pers = Person('max',30);
  print(pers.name);
  pers.breathe();
  pers.sitDown();
}
반응형