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的语法,记住就可以了

  • 相关阅读:
    SVN客户端的安装和使用
    SVN服务器的安装和使用
    ssh port forwarding
    mysql 索引
    ssh forwarding 配置
    pymongo collection.save 问题
    linux 实现VLAN
    linux 硬件中断调节
    M2Crypto
    python 时间四舍五入
  • 原文地址:https://www.cnblogs.com/njcxwz/p/10021320.html
Copyright © 2011-2022 走看看