当前位置: 首页 > news >正文

Flutter Dart中的抽象类 多态 和接口

目录

抽象 ​编辑

多态

接口 implements 约定、规范


抽象 

 注意⚠️抽象类是不能直接实例化

//抽象    定义一个Animal,类要求它的子类必须包含eat方法
abstract class Animal {eat(); //抽象方法run(); //抽象方法printInfo() {print("我是一个抽象类里面的普通方法");}
}class Dog extends Animal {@overrideeat() {print("小狗在吃骨头");}@overriderun() {print("小狗在跑");}
}class Cat extends Animal {@overrideeat() {print("小猫在吃鱼");}@overriderun() {print("小猫在跑");}
}main() {var dog = Dog();var cat = Cat();dog.eat();dog.run();cat.eat();cat.run();// var animal = Animal(); //抽象类是不能直接实例化}

多态

子类的实例赋值给父类的引用

//多态
abstract class Animal {eat(); //抽象方法
}class Dog extends Animal {@overrideeat() {print("小狗在吃骨头");}run() {print("小狗在跑");}
}class Cat extends Animal {@overrideeat() {print("小猫在吃鱼");}run() {print("小猫在跑");}
}main() {//子类的实例赋值给父类的引用Animal dog = Dog();Animal cat = Cat();dog.eat();cat.eat();
}

接口 implements 约定、规范

//定义一个DB库,支持mysql mssql mongodb
//mysql mssql mongodb 三个类里面都有同样的方法abstract class Db {//当做接口,接口:约定、规范String uri = ""; //数据库的连接地址add(String data);save();delete();
}class Mysql implements Db {Mysql(this.uri);@overrideadd(String data) {print("Mysql data");}@overridedelete() {// TODO: implement deletethrow UnimplementedError();}@overridesave() {// TODO: implement savethrow UnimplementedError();}@overrideString uri = "";}class MsSql implements Db {@overrideadd(String data) {print("这是MsSql的add方法 $data");}@overridedelete() {// TODO: implement deletethrow UnimplementedError();}@overridesave() {// TODO: implement savethrow UnimplementedError();}@overrideString uri = "";
}main(){Mysql mysql = Mysql("URL");mysql.add("123");mysql.uri ="192.167.8.8";}

http://www.xdnf.cn/news/182323.html

相关文章:

  • Go语言之路————指针、结构体、方法
  • 【EEGLAB】使用pop_loadset读取.set文件,报错找不到对应的.fdt文件。
  • 《Learning Langchain》阅读笔记10-RAG(6)索引优化:MultiVectorRetriever方法
  • Java 设计模式心法之第30篇 - 返璞归真:设计模式与 SOLID 原则的深度融合
  • Git和Gitlab的部署和操作
  • OurBMC技术委员会2025年一季度例会顺利召开
  • 微博安卓版话题热度推荐算法与内容真实性分析
  • EdgeOne 边缘函数 - 构建边缘网关
  • 【AI提示词】领导力教练
  • JavaScript性能优化实战:从瓶颈定位到极致提速
  • Spark 技术体系深度总结
  • 常用的ADB命令分类汇总
  • markdown-it-katex 安装和配置指南
  • Leetcode刷题记录20——找到字符串中所有字母异位词
  • Java高频面试之并发编程-09
  • 大模型高效背后的反思
  • 检测软件系统如何确保稳定运行并剖析本次检测报告?
  • springboot当中的类加载器
  • Opnelayers:向某个方向平移指定的距离
  • 7.14 GitHub命令行工具测试实战:从参数解析到异常处理的全链路测试方案
  • 视觉导航中的回环检测技术解析
  • Gentex EDI 需求分析
  • 封装成帧的学习
  • 软考-软件设计师中级备考 2、计算机系统组成、指令系统
  • 【JavaScript】二十七、用户注册、登陆、登出
  • Ldap高效数据同步- MirrorMode双主复制模式配置详解(上)
  • 【KWDB创作者计划】_企业级多模数据库实战:用KWDB实现时序+关系数据毫秒级融合(附代码、性能优化与架构图)
  • OpenGl ES 3.0 笔记一:初步概念
  • 4.27 JavaScript核心语法+事件监听
  • 小球在摆线上下落的物理过程MATLAB代码