class 和 dart 中的 mixin 有什么区别?
What is the difference between class and mixin in dart?
有什么区别:
class A {}
class B with A{}
和
mixin A{}
class B with A{}
?
在 Dart 中,一个 class 只能 extend
一个 class。但它可以 implement
或 mixin
任意多。
问题是,当您扩展 class 时,您继承了它的所有属性、方法和构造函数。当您实现 class 时,如果您只添加您还没有的 methods/attributes,您可以简单地继续您的代码。如果要实现抽象方法,则需要实际实现它。现在,mixin 就像扩展的 classes,混合它们的 classes,是它们的 child 以及扩展和实现,但它没有构造函数。
mixins 的实际想法是您可以向任何 class 添加功能,而不必扩展另一个 class。这就是为什么他们通常只做简单的事情。
有什么区别:
class A {}
class B with A{}
和
mixin A{}
class B with A{}
?
在 Dart 中,一个 class 只能 extend
一个 class。但它可以 implement
或 mixin
任意多。
问题是,当您扩展 class 时,您继承了它的所有属性、方法和构造函数。当您实现 class 时,如果您只添加您还没有的 methods/attributes,您可以简单地继续您的代码。如果要实现抽象方法,则需要实际实现它。现在,mixin 就像扩展的 classes,混合它们的 classes,是它们的 child 以及扩展和实现,但它没有构造函数。
mixins 的实际想法是您可以向任何 class 添加功能,而不必扩展另一个 class。这就是为什么他们通常只做简单的事情。