飞镖类中的冒号是什么意思?

时间:2020-05-01 01:17:39

标签: dart syntax

我正在尝试理解冒号这最后两行代码的含义……这是一个语法问题。 我正在遵循this github示例,我对此有疑问。 有人可以帮我弄这个吗?。

class DietPlan extends ParseObject implements ParseCloneable {
  DietPlan() : super(keyDietPlan);
  DietPlan.clone() : this();

1 个答案:

答案 0 :(得分:1)

:之后的部分称为“初始化列表”。 它是一个表达式列表,可以访问构造函数参数,并且可以分配给实例字段,甚至最终实例字段。

第一个冒号,即DietPlan() : super(keyDietPlan);表示您正在调用超级构造函数,在本例中为ParseCloneable的构造函数。 这是OOP的核心概念,您可以将一个类扩展或实现为另一个类,并且必须调用超类构造函数。这只是在Dart中做同样的事情。

第二个冒号以类似的方式工作,以了解您需要了解什么是对象克隆, 对象克隆是指创建对象的精确副本。它创建当前对象类的新实例,并使用该对象相应字段的内容完全初始化其所有字段。 这是第二行上发生的事情。