Dartでスーパーコンストラクターを呼び出すにはどうすればよいですか? 名前付きスーパーコンストラクターを呼び出すことは可能ですか?
質問する
82027 次
6 に答える
180
はい、そうです。構文はC#に近いです。デフォルト コンストラクターと名前付きコンストラクターの両方を使用した例を次に示します。
class Foo {
Foo(int a, int b) {
//Code of constructor
}
Foo.named(int c, int d) {
//Code of named constructor
}
}
class Bar extends Foo {
Bar(int a, int b) : super(a, b);
}
class Baz extends Foo {
Baz(int c, int d) : super.named(c, d);
}
サブクラスでインスタンス変数を初期化する場合、super()
呼び出しは初期化子リストの最後にある必要があります。
class CBar extends Foo {
int c;
CBar(int a, int b, int cParam) :
c = cParam,
super(a, b);
}
/r/dartlangで、このsuper()
コール ガイドラインの背後にある動機について読むことができます。
于 2012-11-07T14:46:26.860 に答える
4
Dart はクラスをインターフェイス ( Implicit interfaces ) として実装することをサポートしているため、実装した場合、 extendsを使用する必要がある親コンストラクターを呼び出すことはできません。実装を使用する場合は、それをextendsに変更し、Eduardo Copat の Solution を使用します。
于 2018-04-09T09:51:34.697 に答える