Dart &引用;扩展;对;实施;对;加上;

Dart &引用;扩展;对;实施;对;加上;,dart,Dart,我想了解扩展、实现和与之间的区别。何时使用每个关键字? 使用extends创建子类,使用super引用超类 Extends是典型的类继承。如果类a扩展类b则类b中实现的所有属性、变量和函数也可在类a中使用。此外,您还可以覆盖函数等 如果要创建更具体的类版本,可以使用extend。例如,classcar可以扩展classvehicle。在Dart中,一个类只能扩展一个类 每个类隐式定义一个接口,该接口包含该类及其实现的任何接口的所有实例成员。如果您想创建一个支持类B的API而不继承B的实现的类

我想了解
扩展
实现
之间的区别。何时使用每个关键字?

使用extends创建子类,使用super引用超类

Extends
是典型的类继承。如果类a扩展类b则类b中实现的所有属性、变量和函数也可在类a中使用。此外,您还可以覆盖函数等

如果要创建更具体的类版本,可以使用
extend
。例如,classcar可以扩展classvehicle。在Dart中,一个类只能扩展一个类


每个类隐式定义一个接口,该接口包含该类及其实现的任何接口的所有实例成员。如果您想创建一个支持类B的API而不继承B的实现的类a,那么类a应该实现B接口

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

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


混合是在多个类层次结构中重用类代码的一种方法

With
用于包含混音。mixin是一种不同类型的结构,它只能与关键字
with
一起使用


它们在flifter中用于包含公共代码片段。常用的Mixin是。

extend
当时只能与单个类一起使用,但是。。。您可以轻松地扩展一个类,该类扩展另一个类,该类扩展另一个类…!;)


事实上,大多数flatter小部件都是这样构建的。

那么,
extends
不能用于多重继承吗?请您进一步解释“每个类隐式定义一个接口,该接口包含该类及其实现的任何接口的所有实例成员”好吗?如果扩展SingleTickerProviderStateMixin,将会发生什么。在其他编程语言中,您不能
实现
类,而只能
实现
接口。接口只包含函数和变量定义,但不包含实现。在
Dart
中,每个类自动具有一个包含所有定义的接口。因此,您也可以将
实现
用于类。是的
扩展
只能用于单个类。“每个类都自动有一个接口”-那么,当我从另一个类实现时,一个类中的所有实现都会被忽略?@Niklas如果我将
with
关键字与一个类而不是mixin一起使用,会发生什么?编译器没有抱怨。