“扩展”与“实现”与“具有”

Kee*_*ani 24 dart

我想明白之间的差别extendsimplementswith。什么时候使用什么?

Nik*_*las 27

扩展:

使用扩展来创建子类,使用超级来引用超类。

Extends是典型的OOP类继承。如果类一个扩展类b类实现的所有属性,变量,函数b也是类可用一个。另外,您可以覆盖功能等。

您可以使用extend,如果你想创建一个类的更具体的版本。例如,阶级汽车可以扩展阶级车辆。在Dart中,一个类别只能扩展一个类别。


实施:

每个类都隐式定义一个接口,该接口包含该类及其实现的所有接口的所有实例成员。如果要创建一个支持类B的API的类A而又不继承其B的实现,则类A应该实现B接口。

Implements如果要创建自己的另一个类或接口的实现,可以使用。当a类实现b类时。必须执行b类中定义的所有功能。

在实现另一个类时,您不会从该类继承代码。您仅继承类型。在Dart中,您可以将implements关键字与多个类或接口一起使用。


与(Mixins):

Mixins是在多个类层次结构中重用类代码的一种方式。

With用于包括Mixins。mixin是另一种类型的结构,只能与关键字一起使用with

它们在Flutter中用于包含常见的代码片段。常用的Mixin是SingleTickerProviderStateMixin

  • 在其他编程语言中,不能“实现”类,而只能“实现”接口。接口仅包含函数和变量定义,而没有实现。在“ Dart”中,每个类都会自动具有一个包含所有定义的接口。因此,您也可以在类中使用`implements`。 (3认同)
  • “每个类都自动具有一个接口”-因此,当我从另一个类中实现该类时,该类内部的所有实现都将被忽略? (3认同)
  • 是的,“extends”只能与单个类一起使用。 (2认同)