dart 学习之多个接口 以及mixin学习

news/2024/7/5 2:37:57

如果一个类继承了多个接口,那么需要实现对应的所有方法

abstract class A {
  printA();
}

abstract class B {
  printB();
}

class C implements A, B {
  
  printA() {
    print("C.a");
  }

  
  printB() {
    print("C.b");
  }
}

mixin既不是继承也不是接口
我们来看一个例子

class plus {
  String name;
  plus(this.name);
}

mixin A {
  void funA() {
    print("A");
  }
}

mixin B {
  funB() {
    print("B");
  }
}

class C extends plus with A, B {
  C(super.name);
}

main() {
  C c = new C("lalal");
  c.funA();
}

在Dart中,类只能直接继承自一个类,但是可以使用 mixins 来实现类似多继承的功能。Mixins 是一种代码重用的方式,允许将一个类的功能注入到另一个类中,而不需要创建整个新的层次结构。在你的例子中,类C继承了plus类并混入了两个mixin:A和B。

让我们逐一讲解你的代码:

class plus {
  String name;
  plus(this.name);
}

这是一个简单的类plus,它具有一个带有参数的构造函数,用于初始化name属性。

mixin A {
  void funA() {
    print("A");
  }
}

mixin B {
  funB() {
    print("B");
  }
}

这里定义了两个mixin:A和B。Mixin是一种在类中注入功能的方式。A有一个名为funA的函数,而B有一个名为funB的函数。

class C extends plus with A, B {
  C(super.name);
}

在这里,类C继承了plus类并混入了mixin A和B。构造函数C接受一个参数并通过super.name将其传递给父类plus的构造函数。这样,C类实际上包含了plus类的属性和方法,以及mixin A和B的功能。

main() {
  C c = new C("lalal");
  c.funA();
}

http://lihuaxi.xjx100.cn/news/1907235.html

相关文章

保存Google Colab数据文件或目录到Google Drive云盘

一、背景 在Google Colab上使用T4 GPU完成微调训练的模型,保存了模型和训练状态的文件存放在Google Colab /content目录内,需要备份。考虑到下载到本地需要大量的流量,且下次继续训练还会上传,最后确定直接保存到Google Drive&am…

在VisualStudio2022中使用Google安卓模拟器(AVD)进行MAUI开发——环境部署篇

1.个人背景: 工作以来主要使用C#,进行了Winform、WPF的Windows桌面应用开发。 上个月微软发布了.NET8并长期支持,个人也一直有兴趣(实际也是工作推进着)进行跨平台应用开发,如题对MAUI框架进行了一些浅薄的探究。 2.MAUI 微软官网:.NET 多平台应用 UI 文档 - .NET MAUI…

机器视觉:AI赋能缺陷检测,铸就芯片产品的大算力与高能效

导言:近年来,国内芯片行业快速发展,市场对芯片需求的不断增大,芯片的缺陷检测压力也越来越大。芯片产品在生产制造过程中,需要经历数道工序,每个生产环节的材料、环境、工艺参数等都有可能造成产品缺陷。不…

虾皮广告数据:优化广告投放,提升产品销量的关键指南

虾皮(Shopee)广告数据是在Shopee平台上进行广告投放和推广时产生的一系列数据指标。通过对这些数据的分析,卖家可以更好地了解广告效果,优化广告策略,提高产品销量。本文将为您介绍如何利用虾皮广告数据,优…

【数据结构】第二章——线性表(2)

线性表的顺序表示 导言1、顺序表的定义2. 顺序表的实现2.1 静态分配2.1.1 整型顺序表的创建2.1.2 顺序表的初始化2.1.3 顺序表的打印 2.2 动态分配2.2.1 整型顺序表的创建2.2.2 顺序表的初始化2.2.3 修改顺序表的长度 结语 导言 大家好,很高兴又和各位见面啦&#…

【方案】如何利用大数据+云计算技术打造智能环境监控系统?

小编在之前的文章中也提到过基于云计算的环境智能监控系统是什么样的,收到了很多朋友的关注,今天小编就再次根据智能监控为切入点,深入讲解智能环境监控系统方案的详细落实。 1、传感器节点:首先需要选择适合应用场景的各类传感器…

关于PBR策略路由的基础实验

PBR实验 策略路由是基于策略实现数据流量转发,不基于路由表。 // 网络结构实现 lsw: 配置三层交换机 vlan batch 10 20 30 int g0/0/2 port link-type access port default vlan 10 int g0/0/3 port link-type access port default vlan 20 int g0/0/1 port link-t…

Python新闻文本分类系统的设计与实现:基于Flask、贝叶斯算法的B/S架构

Python新闻文本分类系统的设计与实现:基于Flask、贝叶斯算法的B/S架构 引言数据获取与处理数据分析与可视化文本分类模型结论 引言 在信息爆炸的时代,新闻数据的快速获取和准确分类变得尤为重要。本文将介绍一种基于Python语言、Flask技术、B/S架构以及…