我想了解extends,implements和with的区别。什么时候使用每个关键字?
extends
implements
with
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。
Extends
extend
Implements
With
vjhs03f72#
extend在当时只能用于一个类,但是...你可以很容易地扩展一个类,这个类扩展另一个类,这个类又扩展另一个类……!;)事实上,大多数Flutter小部件都是这样构建的。
qvk1mo1f3#
另一个定义,可能会帮助你得到的一点..使用extends make class继承(扩展)他的父类,在这里你扩展(拥有)他的属性,除了他自己的属性和方法之外的方法,你还应该验证这个类(子类)提交了它的父类,并且没有打破父类的限制。其中作为当您希望类仅限于抽象类属性,但您有自己的这些属性的实现时,请使用implements。
3条答案
按热度按时间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。
vjhs03f72#
extend
在当时只能用于一个类,但是...你可以很容易地扩展一个类,这个类扩展另一个类,这个类又扩展另一个类……!;)事实上,大多数Flutter小部件都是这样构建的。
qvk1mo1f3#
另一个定义,可能会帮助你得到的一点..使用
extends
make class继承(扩展)他的父类,在这里你扩展(拥有)他的属性,除了他自己的属性和方法之外的方法,你还应该验证这个类(子类)提交了它的父类,并且没有打破父类的限制。其中作为当您希望类仅限于抽象类属性,但您有自己的这些属性的实现时,请使用
implements
。