什么是以下两者之间的区别:
class A {}
class B with A{}
并且
mixin A{}
class B with A{}
?
extend
一个其他的类。但你可以implement
或mixin
任意多个类。
问题在于,当你extend
一个类时,你会继承它所有的属性、方法和构造函数。当你实现一个类时,如果你只是添加了你原本没有的方法/属性,你可以简单的继续你的代码。如果你实现了一个抽象方法,你需要真正地实现它。现在,mixins就像是扩展类一样,它们混合的类也是它们的子类,以及通过extend
和implements
实现的方式,但它们没有构造函数。