尽管可以分配Dart参数,但不能分配

时间:2020-09-14 22:48:27

标签: dart typing object-oriented-analysis

我目前在理解这一点上有困难。

给出以下内容:

class Parent {
  Parent(Function(Parent) initializer);
}

class Child extends Parent {
  //type of initializer can't be parsed to something super() expects.
  Child(Function(Child) initializer) : super(initializer); 
}


void foo(Parent parent) => null;
void bar(Child child) => foo(child);

此代码给出错误: The argument type 'dynamic Function(Child)' can't be assigned to the parameter type 'dynamic Function(Parent)',但是在foobar中,没有出现预期的错误。有什么区别?

对此我感到非常困惑,因为Child扩展了父级,因此,在面向对象的意义上,孩子是“父级”,因此它应该起作用。

0 个答案:

没有答案