1.繼承 extends
- dart里的繼承是單繼承,即只能又一個父類
- 子類會繼承父類所有非私有屬性和方法
- 子類重寫父類的方法用
@override
,子類調(diào)用父類方法用super
2.混合 mixin
(with
)
-
mixin
不能有構(gòu)造函數(shù) - 一個類可以
mixin
多個mixin
類 -
mixin
不是繼承
3.接口實現(xiàn)implements
- 每個類都是一個隱式接口脯宿,包含所有的屬性和方法
- 當(dāng)一個類被
implements
時, 子類需要重寫該類的所有屬性和方法,并在前面加@override
4.抽象類abstract
- 不能被實例化器罐,只能被子類繼承
- 可以在抽象類中定義抽象方法與普通方法,抽象方法不能有實現(xiàn)渐行,且子類必須重寫該方法轰坊,而普通方法不強制子類重寫
抽象類與接口實現(xiàn)看起來有很多相似的地方, 但也有不同之處
abstract class | interface class |
---|---|
不能實例化 | 可以實例化 |
只有抽象方法需要重寫 | 所有屬性與方法都要重寫 |
只能繼承一個抽象類 | 能implement多個類 |