Dart extends|with |implements

176 阅读1分钟

首先了解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 必须覆写被实现类的所有成员。