美文网首页
继承、混入、接口

继承、混入、接口

作者: ES_KYW | 来源:发表于2021-05-20 17:50 被阅读0次

    extends、with、implements

    dart没有interface概念,每个类都是隐式的接口;
    类C只想拥有A、B的API,不需要对应的实现;
    接口:
    abstract class A{
      String name;
      printA();
    }
    abstract class B{
      printB();
    }
    class C implements A,B {
     @override
      String name;  
      @override
      printA() {
        print('printA');
      }
      @override
      printB() {
        return null;
      }
    }
    混入:
    实现多继承功能;
    1.作为mixins的类只能继承自Object,不能继承其他类
    2.作为mixins的类不能有构造函数
    3.一个类可以mixins多个mixins类
    class A{
    String name;
    A(this.name)
    printA() {
        print('printA');
      }
    }
    class B{
    printB() {
        print('printB');
      }
    }
    class C{
    printC() {
        print('printC');
      }
    }
    
    class D  extends A with B,C{
      D(String name) : super(name);
    }
    
    void main(){  
      var d=new D('张三');  
      d.printB();
      d.printC();
    }
    继承:
    flutter继承是单继承,利用混入可以实现多继承的功能;
    1.子类使用extends关键词来继承父类
    2.子类会继承父类里面可见的属性和方法 但是不会继承构造函数
    3.子类能复写父类的方法 getter和setter
    4.子类重写超类的方法,要用@override
    5.子类调用超类的方法,要用super
    6.子类可以继承父类的非私有变量
    class A{
      String name;
      A(this.name)
      printA() {
        print('printA');
      }
    }
    class B extends A{
     B(String name) : super(name);
      @override 
      void printA(){
         print("B"); 
      }
      printB() {
        print('printB');
      }
    }

    相关文章

      网友评论

          本文标题:继承、混入、接口

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