문제
super.name = name; 에서 오류가 생긴다
// 상속
class Burger {
  String name;
  Burger(this.name);
}
// is
class ChickenBurger extends Burger {
  int price;
  ChickenBurger(int price, String name)
    this.price = price;
    super.name = name;
}
void main() {
  Burger b1 = ChickenBurger(1000, "치킨버거");
}
                                                                           ⬇️
// 상속
class Burger {
  String name;
  Burger(this.name);
}
// is
class ChickenBurger extends Burger {
  int price;
  ChickenBurger(int price, String name) :  super(name),
    this.price = price;
}
void main() {
  Burger b1 = ChickenBurger(1000, "치킨버거");
}                                                                           ⬇️
💡 해결 방법
플러터에서 추천하는 방법
- 값을 초기화 할 때는 그냥 집어 넣어본다
// 플러터 추천 방법
class ChickenBurger3 extends Burger {
  int price;
  String color;
  ChickenBurger3(this.price, this.color, String name) : super(name);
}
다른 해결 방법 1
// 상속
class Burger {
  String name;
  Burger(this.name);
}
// is
class ChickenBurger extends Burger {
  int price;
  ChickenBurger(this.price, String name) : super(name);
}
void main() {
  Burger b1 = ChickenBurger(1000, "치킨버거");
}
다른 해결 방법 2
// 하나짜리는 이게 편함
class ChickenBurger2 extends Burger {
  ChickenBurger2(super.name);
}
Share article