以下の例では、 sum getter が 8 を返すことを期待していましたが、これはコンパイル エラーです。
Class 'B' has no instance getter 'sum'.
仕様によると:
インターフェイスの代わりに抽象クラスを使用すると、重要な利点があります。抽象クラスはデフォルトの実装を提供できます。また、静的メソッドを提供することもできるため、特定のタイプに関連するユーティリティをグループ化することを全体の目的とするコレクションやリストなどのサービス クラスが不要になります。
x と y を加算する sum の既定の実装を提供する正しい方法は何ですか?
abstract class A {
int get x;
int get y;
int get sum => x+y;
}
class B implements A {
int get x => 3;
int get y => 5;
}
main() {
B b = new B();
print(b.x);
print(b.sum); // Not working, why not 8?
}