为什么要给super传值class? subclass 到 super

Why to pass values to the super class? subclass to super

我正在检查 Equatable package "how to use" 示例,它们将值传递给 super class,这个主题就像一个盲点我,我到处都看到它:

import 'package:equatable/equatable.dart';

class Person extends Equatable {
  final String name;

  // why? what's happening behind the scene here?
  Person(this.name) : super([name]);
}

另一个例子

@immutable
abstract class MyEvent extends Equatable {
  MyEvent([List configs = const []]) : super(configs);
}

1- 我们为什么要这样做?为什么要传递抽象事物的价值?蓝图?这个有什么用?

2- 为什么有时开发人员会像这样传递抽象 class 的值?

3- 这里的幕后发生了什么?

4- 此类代码的用例是什么?

非常感谢。

一个class是抽象的并不排除它在Dart中有一些具体的成员。

以下class为例:

abstract class Foo {
  Foo(this.value);

  final int value;

  @override
  String toString() => value.toString();
}

虽然它是抽象的,但它具有 属性 value 的具体实现,通过自定义构造函数进行初始化。

并且由于参数是必需的,子class 必须像这样调用超级构造函数:

class Subclass extends Foo {
  Subclass(): super(42); 
}