zoukankan      html  css  js  c++  java
  • 如何理解dart的mixin

    mixin翻译出来就是混入的意思

    混入,就是一个类可以使用另一个类里的功能比如方法或者属性,其实这个功能并不陌生 ,有点类似c#里的扩展方法,但是并不同于,

    mixin和implements有着本质的区别,implements是实现,dart中任何类都有一个隐形的接口,都可以被其他类实现

    但是混入却有着限制,首先一个类如果定义了构造函数,哪怕是无参的,也是无法被别的类混入的,这在语法上就无法通过

    因此一个类想被别的类混入,就无法声明构造函数

    [dart] The class 'Student1' can't be used as a mixin because it declares a constructor. [mixin_class_declares_constructor]

    那么命名构造函数存在可以么?

    也不可以,所以只要一个类包含了任何性质的构造函数,那么它就无法被别的类混入了

    另外我们可以把一个类直接定义成混入类 并限制只能是继承自Person的子类才可以混入,但是dart语法会提示person类必须满足无名的构造函数,也就是说可以不定义构造函数,也可以定义一个无参的构造函数,或者是一个可重载的构造函数,dart中的重载采用的是{}

     mixin  Student1 on Person
    {
      String name;
      int age;
      void test()
      {
    
      }
    }

    关于混入,这些是dart的语法,记住就可以了

  • 相关阅读:
    linux查看python安装位置
    Linux 重命名
    Linux 解压 压缩文件
    linux下文件的复制、移动与删除
    设计模式-命令模式
    设计模式-心得
    设计模式-责任链模式
    ajax跨域问题以及解决方案
    强者运强
    管理者法则
  • 原文地址:https://www.cnblogs.com/njcxwz/p/10021320.html
Copyright © 2011-2022 走看看