Flutter:继承接口类,并将多个子类实例化

接口类

abstract class Animal {late String name;void eat() {}
}

子类

class Dog implements Animal{void eat() {print("Dog eat");}late String name;
}
class Cat implements Animal{void eat() {print("cat eat");}late String name;
}

工厂类

在Flutter中动态加载并执行一个文件夹下所有类的方法并不像Java那样直接(例如通过反射机制),因为Dart和Flutter主要是静态编译的,而且不鼓励运行时动态类加载。但是,你可以通过一种设计模式,比如工厂模式,来手动管理这些类的实例化和调用。

import 'animal.dart';
import 'dog.dart';
import 'cat.dart';Map<String, Animal> _animalInstances = {};class AnimalFactory {static Future<void> initAnimals() async {// 在这里手动注册所有动物类的实例_animalInstances['Dog'] = Dog();_animalInstances['Cat'] = Cat();}static void makeAllSay() {_animalInstances.forEach((key, value) {value.eat();});}
}

使用

ElevatedButton(onPressed: ()  async{await AnimalFactory.initAnimals();AnimalFactory.makeAllSay();},child: const Text("执行"),)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

充电桩选型对比:ESP32-S3模组和ESP32-C3模组谁更合适

随着新能源电车的普及&#xff0c;全国各地和海外都开始加紧安装充电桩&#xff0c;运城到2025年年底,实现充电桩城镇居住小区全覆盖&#xff0c;截至今年3月底,泉州市新增充电桩居民报装1.68万户。 启明云端是国内领先的物联网通讯产品和整体解决方案供应商&#xff0c;有非常…

全面监控支撑业务系统的IT软硬件,确保企业信息化稳健运行

在当今高度信息化的时代&#xff0c;企业信息化业务系统的稳定运行显得尤为重要。为了确保信息化业务系统的连续性和高效性&#xff0c;企业需要对这些系统的关键组件进行实时监控和管理。监控易产品&#xff0c;以其强大的信息化业务系统管理与监控功能&#xff0c;为企业提供…

Gromacs——教程学习(6)

谈谈怎么判断分子动力学模拟是否达到了平衡 在计算RMSD之前必须先通过最小二乘法将各帧结构相对于参考结构进行最大程度叠合&#xff0c;从而消除体系的整体运动而令RMSD只体现生物分子内部结构的变化&#xff0c;这称为align或者least squares fit。 需要注意的是&#xff0…

国产Sora诞生!清华团队发布Vidu大模型,可直接生成16秒视频

大模型之争已从单模态转向多模态。 4月27日&#xff0c;在2024中关村论坛年会未来人工智能先锋论坛上&#xff0c;清华大学联合北京生数科技有限公司正式发布了文生视频大模型——Vidu。 在会议上&#xff0c;清华大学人工智能研究院副院长、生数科技首席科学家朱军对外展示了…

stack,queue的模拟实现以及优先级队列

这篇博客用来记录stack&#xff0c;queue的学习。 stack的模拟实现 stack的模拟实现比较简单&#xff0c;先上代码 #pragma once #include<vector> #include<list> #include<deque> #include<iostream> using std::deque; using namespace std;name…

PyTorch中Torch.arange()函数详解

函数原型 arange(start0, end, step1, *, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse) -> Tensor 用法 返回大小为的一维张量&#xff0c;其值介于区间 为步长等间隔取值 参数说明 参数类型说明startNumber起始值&#xff0c;默认值&…

【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码

文章目录 一、游戏运行效果二、代码实现2.1 项目搭建2.2 加载我方坦克2.3 加载敌方坦克2.4 添加爆炸效果2.5 坦克大战之音效处理 三、完整代码 一、游戏运行效果 二、代码实现 坦克大战游戏 2.1 项目搭建 本游戏主要分为两个对象&#xff0c;分别是我方坦克和敌方坦克。用户可…

C++ 中的隐式类型转换

基本数据类型的转换(不是重点) int i 42; double d i; // int 自动转换为 double 类类型转换: 如果一个类定义了接受单一参数的构造函数&#xff08;且该构造函数未被声明为 explicit&#xff09;&#xff0c;那么该构造函数可以被用来进行隐式转换,可以理解为int被隐式转…

告别盲目投放,Xinstall让App广告效果一目了然

在移动互联网时代&#xff0c;App广告的投放已经成为企业营销的重要手段。然而&#xff0c;广告主在投放广告后&#xff0c;如何有效追踪广告效果、衡量广告ROI&#xff0c;一直是困扰他们的难题。今天&#xff0c;我们就来聊聊Xinstall这家国内专业的App全渠道统计服务商&…

计算一个结构的平方

在行列可自由变换的平面上计算3a1*3a1 得到的结构应该有9个点&#xff0c;并且点的分布有3a1的特征 这个9点结构可以化简成 1 1 1 1 1 1 1 1 1 显然这个结构可以再次平方&#xff0c;得到 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

python:reportlab 生成pdf:基本用法。

1.首先&#xff0c;打开cmd&#xff0c;安装reportlab pip install -i https://pypi.tuna.tsinghua.edu.cn/simple reportlab #从清华镜像安装更快 然后就可以使用其基本用法。 from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvasdef genera…

Day43 JDK1.8新特性 下 接口的类优先原则和接口冲突,日期时间组件,重复注解

Day43 JDK1.8新特性 1.接口的默认方法与静态方法 从JDK1.8开始&#xff0c;接口中可以有默认方法&#xff0c;既default修饰的方法&#xff0c;此方法可以让接口的实现类所调用&#xff0c;而接 口中的静态方法直接用接口名调用即可 public class Test1 {Testpublic void test…

小程序评分/关键词/UV优化助力小程序登顶

随着小程序市场的日益繁荣&#xff0c;小程序搜索排名优化成为了众多开发者关注的焦点。小程序搜索排名被很多因素影响着&#xff0c;关键词、评分还有uv&#xff08;授权&#xff09;等。在本文小柚和各位老板分享如何有效优化小程序搜索排名的经验。 一、关键词策略 关键词是…

Python | Leetcode Python题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; class Solution:def canJump(self, nums: List[int]) -> bool:n, rightmost len(nums), 0for i in range(n):if i < rightmost:rightmost max(rightmost, i nums[i])if rightmost > n - 1:return Truereturn False

【c++】cpp运算符重载

目录 &#xff08;1&#xff09;什么是运算符重载 &#xff08;2&#xff09;运算符重载的本质是函数调用 &#xff08;3&#xff09;可以与不可以重载的运算符 &#xff08;4&#xff09;单目运算符与双目符重载区别 &#xff08;5&#xff09;双目运算符重载举例 重载操…

Web3的可持续性:构建环境友好的去中心化系统

引言 随着全球对可持续发展和环境问题的日益关注&#xff0c;Web3技术作为一种新型的互联网模式&#xff0c;也开始受到社区和开发者的关注。但很少有人关注到Web3对环境可持续性的潜在影响。本文将探讨Web3如何构建一个环境友好的去中心化系统&#xff0c;以及这如何促进一个…

偏微分方程算法之五点菱形差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 上个专栏我们介绍了双曲型偏微分方程的主要算法及实现。从今天开始&#xff0c;我们在新的专栏介绍另一种形式偏微分方程-椭圆型的解法。 研究目标选取经典的二维椭圆型方程&#xff08;也称泊松Poisso…

马斯克突击访华;谷歌 Python 基础团队全数被裁;丨 RTE 开发者日报 Vol.195

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

python基础学习之写入csv文件

前言 在Python编程中&#xff0c;经常会遇到要将数据存到csv文件中&#xff0c;今天来详细讲一下。 一.功能目的 将以下数据存到csv文件中。 data [ {name: Alice, age: 25, city: New York}, {name: Bob, age: 30, city: Los Angeles}, {name: Charlie, age: 35, city:…

共享模型之无锁——Unsafe

文章目录 概述Unsafe CAS 操作 名字虽然叫Unsafe,但并不是线程不安全&#xff0c;而是因为他会操作内存&#xff0c;操作线程&#xff0c;不建议开发人员使用。 概述 Unsafe 对象提供了非常底层的&#xff0c;操作内存、线程的方法&#xff0c;Unsafe 对象不能直接调用&#x…