是否可以用其超类的实例构造一个类的实例而无需一一调用每个字段(在下面的代码中,我称为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);
}
答案 0 :(得分:0)
这不可能,因为它没有感觉。 Foo
是Bar
(扩展了Bar
),但是Bar
不是Foo
。因此,您无法将其分配给Foo
。
实际上,随着Foo
扩展Bar
,Bar
中有些东西Foo
中存在。
回到您的原始问题,如果您想创建一个没有Foo
的{{1}},则可以执行以下操作:
age