Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用哪个构造函数?为什么?super的用途是什么?_Flutter_Dart_Constructor_Super - Fatal编程技术网

Flutter 使用哪个构造函数?为什么?super的用途是什么?

Flutter 使用哪个构造函数?为什么?super的用途是什么?,flutter,dart,constructor,super,Flutter,Dart,Constructor,Super,代码示例#1(我对这些代码的解释是否正确) 提前感谢您的帮助。解决方案2不是使用equalable的方法。 要使用equatable只有解决方案1有效。解决方案2不是使用equatable的方法。 要使用equalable仅解决方案1有效 super用于什么 关键字super用于调用基类构造函数。当您有一个基类时,您必须调用该构造函数。默认情况下,如果不显式执行此操作,将调用不带参数的构造函数。必须显式调用构造函数的最明显的例子是基类没有无参数的可访问构造函数 使用哪个构造函数?为什么 您可以

代码示例#1(我对这些代码的解释是否正确)

提前感谢您的帮助。

解决方案2不是使用
equalable
的方法。 要使用
equatable
只有解决方案1有效。

解决方案2不是使用
equatable
的方法。 要使用
equalable
仅解决方案1有效

super
用于什么

关键字
super
用于调用基类构造函数。当您有一个基类时,您必须调用该构造函数。默认情况下,如果不显式执行此操作,将调用不带参数的构造函数。必须显式调用构造函数的最明显的例子是基类没有无参数的可访问构造函数

使用哪个构造函数?为什么

您可以使用构造函数。如果需要,可以显式调用
super
构造函数。如果您不需要,那么默认调用就可以了

这里怎么了

这不是你的问题,但我想这就是你来这里的原因。在第二个示例中,您正在调用基类的构造函数,该构造函数根本不存在或您无法访问。我不知道你是从哪里想到这个主意的。可能是过时的文档或教程?一厢情愿?一般来说,如果基类确实定义了这样的构造函数,它就可以工作了。您的基类不工作,因此它不工作

super
用于什么

关键字
super
用于调用基类构造函数。当您有一个基类时,您必须调用该构造函数。默认情况下,如果不显式执行此操作,将调用不带参数的构造函数。必须显式调用构造函数的最明显的例子是基类没有无参数的可访问构造函数

使用哪个构造函数?为什么

您可以使用构造函数。如果需要,可以显式调用
super
构造函数。如果您不需要,那么默认调用就可以了

这里怎么了


这不是你的问题,但我想这就是你来这里的原因。在第二个示例中,您正在调用基类的构造函数,该构造函数根本不存在或您无法访问。我不知道你是从哪里想到这个主意的。可能是过时的文档或教程?一厢情愿?一般来说,如果基类确实定义了这样的构造函数,它就可以工作了。您的基类不工作,因此它不工作。

哪个错误,哪个重写?向我们显示确切的错误以及您从中获得错误的确切代码。您好,添加错误/警告屏幕截图。我正在尝试创建一个模型类,代码示例#2是错误的
super()
调用基类的构造函数,但该类的构造函数不带参数。代码示例#1看起来正确,并实现了equalable所需的propsgetter。您使用代码示例#1时出错了吗?代码示例#1没有错误,正如您所建议的,我使用了它。但是,您能否解释一下“super()调用基类的构造函数”。我是新来的,对这个概念很困惑。或者你可以推荐任何涵盖这个概念的阅读材料。特别是对于Dart,我推荐阅读。但是,如果您不熟悉面向对象的概念(例如什么是“base”(又名“super”)类),您可能应该了解一些面向对象编程的介绍。哪个错误,哪个重写?向我们显示确切的错误以及您从中获得错误的确切代码。您好,添加错误/警告屏幕截图。我正在尝试创建一个模型类,代码示例#2是错误的
super()
调用基类的构造函数,但该类的构造函数不带参数。代码示例#1看起来正确,并实现了equalable所需的propsgetter。您使用代码示例#1时出错了吗?代码示例#1没有错误,正如您所建议的,我使用了它。但是,您能否解释一下“super()调用基类的构造函数”。我是新来的,对这个概念很困惑。或者你可以推荐任何涵盖这个概念的阅读材料。特别是对于Dart,我推荐阅读。然而,如果您不熟悉面向对象的概念(例如什么是“base”(又名“super”)类),您可能应该了解一些面向对象编程的介绍。
class Weather extends Equatable {
  final String cityName;
  final double temperature;

  Weather({
    @required this.cityName,
    @required this.temperature,
  });

  @override
  List<Object> get props => [cityName, temperature];
}
class Weather extends Equatable {
  final String cityName;
  final double temperature;

  Weather({
    @required this.cityName,
    @required this.temperature,
  }) : super([cityName, temperature]);
}