我想详细了解这3个之间的区别。我读了有关dart中的mixins和继承的信息,但是如果有人可以帮助我提供一些有关在哪种情况下使用哪个示例的示例,那将是非常不错的。
答案 0 :(得分:4)
使用扩展来创建子类,并使用super来引用超类。
Extends
是典型的OOP类继承。如果 a 类扩展了 b 类,则在 a 类中还提供了在 b 类中实现的所有属性,变量和函数。 。另外,您可以覆盖功能等。
如果要创建类的更特定版本,请使用extend
。例如,汽车类可以扩展车辆类。在Dart中,一个类只能扩展一个类。
如果要创建自己的另一个类或接口的实现,可以使用每个类都隐式定义一个接口,该接口包含该类及其实现的所有接口的所有实例成员。如果您想创建一个支持B类API的A类而不继承B的实现,则A类应实现B接口。
Implements
。当类 a 实现类 b 时。必须实现在类 b 中定义的所有功能。
在实现另一个类时,您不会继承该类的代码。您仅继承类型。在Dart中,您可以将implements
关键字用于多个类或接口。
杂类是在多个类层次结构中重用类代码的一种方式。
With
用于包含Mixins。混合是一种不同类型的结构,只能与with
关键字一起使用。
在Flutter中使用它们来包含常见的代码片段。常用的Mixin是SingleTickerProviderStateMixin。
答案 1 :(得分:0)
extend
当时只能用于单个类,但是...您可以轻松扩展一个类,该类扩展另一个类,该扩展另一个类,...! ;)
事实上,大多数Flutter小部件都已经这样构建。