Dart使用超类对象创建实例

时间:2019-08-06 17:11:03

标签: dart

是否可以用其超类的实例构造一个类的实例而无需一一调用每个字段(在下面的代码中,我称为bar.name)?

当我这样做时,Foo foo = bar,我得到

Instance of 'Bar': type 'Bar' is not a subtype of type 'Foo'

但是,Foo扩展了栏

void main() {
 Bar bar = Bar('bar');
  Foo foo2 = Foo(null, bar.name); // Works but need to call every field 
  print(foo2.name);

  Foo foo = bar; // How to make this work ?
}
class Bar{
  final String name;
  Bar(this.name);
}
class Foo extends Bar{
  final int age;
  Foo(this.age, String name) :super(name);
}

1 个答案:

答案 0 :(得分:0)

这不可能,因为它没有感觉。 FooBar(扩展了Bar),但是Bar不是Foo。因此,您无法将其分配给Foo

实际上,随着Foo扩展BarBar中有些东西Foo中存在。

回到您的原始问题,如果您想创建一个没有Foo的{​​{1}},则可以执行以下操作:

age