首先了解Dart中的 class
class 关键字用于定义一个类,abstract class 抽象类中才能有抽象方法(没有方法体的方法)
abstract class Animal {
void eat();
void sleep();
}
class Dog extends Animal {
@override
void eat() {
// TODO: implement eat
}
@override void sleep() {
// TODO: implement sleep
}
}
extends 继承
extends会继承并可以覆写父类所有的成员,非抽象类继承抽象类必须实现父类抽象方法。
with 混入
被混入(with后面的)类不能继承或实现其他类。通过使用with 可以帮助混入类实现或覆写具体的方法。
被混对象可以是抽象类,非抽象类 和 mixin (通过on 来指定混入宿主的类型)
mixin Fly on Bird {
@override
void fly() {}
}
class Eagle extends Bird with HighlyFly, Fly implements FlyFly {
@override
void eat() {}
@override
void sleep() {}
@override
void fly() {}
}// 混入多个带有同名方法的类时,一次被覆盖,离with最远的保留
implements 实现
和extends相似,只不过 implement 必须覆写被实现类的所有成员。