📱

Flutter:親クラスと同名のフィールド値を子クラスで定義しないこと!

に公開

自作のクラスを継承した新しいクラスを定義する際に,青い波線表示(Vscode内で)が出ました.Dartの公式ドキュメントを見ると,親クラスと同名のフィールド値を子クラスで再定義(オーバーライド)するのは良くないそうです.(よく考えてみれば,それはそうなんですけど....笑笑)

フィールド値の定義:悪い例と良い例

  • 公式ドキュメントより引用

悪い例

class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Bad1 extends Base {
  
  final field = 'ipsum'; // LINT
}

class Bad2 extends Base {
  
  Object something = 'done'; // LINT
}

良い例


class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Ok extends Base {
  Object newField; // OK

  final Object newFinal = 'ignore'; // OK
}

参考資料

(公式資料)
https://dart.dev/tools/linter-rules/overridden_fields

Discussion