Dart一个类实现多个接口和mixins

133 阅读1分钟

一个类实现多个接口


abstract class A {
    String name;
    printA();
}

abstract class B {
    printB();
}

class C implements A,B{
    @override
    String name;
    
    @override
    printA(){
    
    }
    
    @override
    printB(){
    }
}

mixins

mixins的中文意思是混入,就是在类中混入其他功能

在Dart中可以使用mixins实现类似多继承的功能

因为mixins使用的条件,随着dart版本一直在变,这里讲得是Dart2.x中使用mixins的条件

1.作为mixins的类只能继承自Object,不能继承其他类
2.作为mixins的类不能有构造函数
3.一个类可以mixins多个mixins类
4.mixins绝不是继承,也不是接口,而是一种全新的特性

使用mixins实现类似多继承

class A{
    void printA(){
        print("A");
    }
}
class B{
    void printB(){
        print("B");
    }
}

class C with A,B{
    
}

注意:如果混入的两个类中有同名的属性或者方法,则会根据混入顺序,后面的同名属性或方法将其覆盖