美文网首页flutter
Dart语法之Mixins与with关键字

Dart语法之Mixins与with关键字

作者: Swy2w | 来源:发表于2018-10-13 11:14 被阅读105次

    Dart和Java一样只支持单继承。而且Dart中没有和Java一样提供Interface字段去声明一个接口,但是也有抽象类。

    如果想使用和Java接口一样的功能可以使用Mixins和implements两种方式,分别解释下两种方式:

    • Mixins : 指能够将另一个或多个类的功能添加到您自己的类中,而无需继承这些类。
    • implements : 将一个类作为接口使用
    class A {
      void a() {
        print('a');
      }
    }
    
    class B implements A {
      @override
      void a() {
        print('override a');
      }
    }
    
    class C {
      void c() {
        print('c');
      }
    }
    
    class E {
      String e = 'eeee';
    }
    
    class D extends A with C, E {
      void c() {
        print('c is D');
      }
    
      void d() {
        c();
      }
    }
    

    首先看B implements A,所以此时A相对于B来说就是一个接口,所以他要实现B中的方法。换句话说,Dart每个类都是接口

    然后看D extends A with C ,D继承于A,由于单继承特性,这个时候D不能再使用extends关键字继承其他类,但是可以使用with关键字折叠其他类以实现代码重用。当属性和方法重复时,以当前类为准。比如上面例子调用D的c()方法打印的是 c is D

    相关文章

      网友评论

        本文标题:Dart语法之Mixins与with关键字

        本文链接:https://www.haomeiwen.com/subject/khhoaftx.html