[트러블 슈팅] 18. super.name = name; 이 왜 오류가 날까

귤's avatar
May 29, 2025
[트러블 슈팅] 18. super.name = name; 이 왜 오류가 날까

문제

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, "치킨버거"); }
notion image
⬇️
// 상속 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, "치킨버거"); }
이렇게 해도 안됨
⬇️

💡 해결 방법

플러터에서 추천하는 방법

page icon
  • 값을 초기화 할 때는 그냥 집어 넣어본다
// 플러터 추천 방법 class ChickenBurger3 extends Burger { int price; String color; ChickenBurger3(this.price, this.color, String name) : super(name); }
notion image

다른 해결 방법 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, "치킨버거"); }
notion image

다른 해결 방법 2

// 하나짜리는 이게 편함 class ChickenBurger2 extends Burger { ChickenBurger2(super.name); }
notion image
Share article

gyul