문제
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