dart “extends”与“implements”与“with”

t5zmwmid  于 2023-06-19  发布在  其他
关注(0)|答案(3)|浏览(161)

我想了解extendsimplementswith的区别。什么时候使用每个关键字?

lmyy7pcs

lmyy7pcs1#

扩展:
使用extends创建子类,使用super引用超类。
Extends是典型的OOP类继承。如果classa扩展classb,则在classb中实现的所有属性、变量和函数在classa中也可用。此外,您还可以覆盖函数等。
如果你想创建一个类的更具体的版本,你可以使用extend。例如,类car可以扩展类vehicle。在Dart中,一个类只能扩展一个类。
工具:
每个类都隐式地定义了一个接口,该接口包含该类及其实现的任何接口的所有示例成员。如果要创建一个支持类B的API而不继承B的实现的类A,则类A应该实现B接口。
Implements可以用来创建自己的类或接口的实现。当类a实现类b时。必须实现类b中定义的所有函数。
当你实现另一个类时,你不会从这个类继承代码。您只继承类型。在Dart中,您可以将implements关键字用于多个类或接口。
(混合物):
mixin是在多个类层次结构中重用类代码的一种方式。
With用于包含Mixins。mixin是一种不同类型的结构,只能与关键字with一起使用。
它们在Flutter中用于包含常见的代码片段。一个常用的Mixin是SingleTickerProviderStateMixin

vjhs03f7

vjhs03f72#

extend在当时只能用于一个类,但是...你可以很容易地扩展一个类,这个类扩展另一个类,这个类又扩展另一个类……!;)
事实上,大多数Flutter小部件都是这样构建的。

qvk1mo1f

qvk1mo1f3#

另一个定义,可能会帮助你得到的一点..使用extends make class继承(扩展)他的父类,在这里你扩展(拥有)他的属性,除了他自己的属性和方法之外的方法,你还应该验证这个类(子类)提交了它的父类,并且没有打破父类的限制。其中作为
当您希望类仅限于抽象类属性,但您有自己的这些属性的实现时,请使用implements

相关问题