1. 写在前面

在上篇文章中介绍了Dart中的类方法对象操作符,那么现在就继续来学习 Dart中的继承吧。

【Flutter】苹果Mac电脑配置flutter开发环境

【Flutter】 Android Studio 安装第三方模拟器—网易MuMu

【Flutter】项目运行报错Failed to find Build Tools revision 29.0.2

【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘

【Flutter】如何新建项目,运行你的第一个 flutter 工程项目

【Flutter】Dart中的var、final 和 const基本使用

【Flutter】Dart数据类型之num

【Flutter】Dart数据类型之String

【Flutter】Dart的数据类型list&Map(数组和字典)

【Flutter】Dart的方法与箭头函数

【Flutter】Dart的方法中的可选参数、方法作为参数传递

【Flutter】Dart中的匿名函数、闭包

【Flutter】Dart中的类和对象

【Flutter】Dart中的构造函数

【Flutter】Dart的工厂构造方法&单例对象&初始化列表

【Flutter】Dart的类方法和对象操作符

2. 继承

在面向对象的开发语言当中,继承是经常听到的一个词语,在 iOS 中我们也是经常用继承来进行代码的复用,那么在 dart 中的继承是如何定义和使用的呢?

  • 在 Dart 中
  1. 使用 extens 继承一个类
  2. 子类会继承除了构造方法以外的属性和方法
  3. dart是单继承

那么接下来就具体看看代码吧!先定义一 个Person 类,Student继承Person类。

class Student extends Person {study(){print("好好学习,天天向上");}
}
class Person {String? name;int? age;int? _height;//计算属性bool get isRight => _height! > 180;run(){print("run.....");}}

2.1 子类继承父类的属性和方法

  • 子类继承父类的属性和方法
void main() {Student stu = Student();stu.name = "reno";stu.run();stu._height = 181;stu.study();print(stu.isRight);}
  • 打印结果

2.2 子类重写父类方法

  • 子类重写父类方法
@overriderun(){print("Student run..");}

重写父类的方法和 Swift 一样都是使用override来重写。

2.3 多态

  • 多态
 //多态Person stu = Student();if(stu is Student) {stu.name = "reno";stu.run();stu._height = 181;stu.study();print(stu.isRight);}
  • 测试结果


所有的类都是继承自 Object所以Person类相当于下面这样:

class Person extends Object{}

Object里面有个方法:toString()类似于 OC 中的description,现在去重写一下toString()

toString()默认情况下是返回super.toString()的值,这个返回值也可以自己定义

2.4 关于构造方法

  • 构造方法

父类的默认构造方法子类是自带继承过去的,但是父类的带参数的构造方法,带名称的构造方法,子类不默认继承,需要手动去实现,如果有多个,子类手动实现其中一个就可以,如下:

子类没有实现除默认以外的构造方法,会报错,实现其中一个即可了。

3. 写在后面

关注我,更多内容持续输出

  • CSDN
  • 掘金
  • 简书

【Flutter】Dart中的继承相关推荐

  1. 深入理解 Dart 中的继承和 Minxins

    上一篇文章中我们详细地介绍了 Dart 中的面向对象的基础,这一篇文章中我们继续探索 Dart 中面向对象的重点和难点(继承和 Mixins).Mixins(混合)特性是很多语言中都是没有的.这篇文章 ...

  2. Flutter Dart 中List的初始化

    List的初始化有多种方式 main(){List<int> myList=[];myList.add(1);print(myList[0]); }

  3. Flutter 开发中最实用的 Dart 语法知识

    零.前言 都说 Flutter 是谷歌的新宠,这段时间有空,就学习了一下 Dart 语法.本篇文章将会详细全面的介绍 Dart 常用语法. 一.变量和常量 在 Drat 语言中,一切皆对象,对象的默认 ...

  4. 如何在 Flutter 和 Dart 中检查数字字符串

    如何在 Flutter 和 Dart 中检查数字字符串 数字字符串只是字符串格式的数字. 数字字符串示例: '123', '0.123', '4.234,345', '-33.33', '+44.44 ...

  5. dart开发Android服务,关于android:在Flutter应用中使用由swagger生成的Dart代码生成的Web服务...

    我正在尝试使用Flutter开发一个移动应用程序,我使用swagger生成了包含所有Web服务的Dart文件代码生成.我想从Web服务中获取所有用户的列表. 在屏幕上,我想为每个用户显示:图像,名字, ...

  6. [Dart] Flutter开发中的几个常用函数

    几个Flutter开发中的常用函数 /** 返回当前时间戳 */static int currentTimeMillis() {return new DateTime.now().millisecon ...

  7. 详解Dart中如何通过注解生成代码

    简介:详解dart与java注解生成代码异同点 作者:闲鱼技术-龙湫 1.背景 最近在项目中使用到了Dart中的注解代码生成技术,这跟之前Java中APT+JavaPoet生成代码那套技术还是有一些不 ...

  8. Flutter 动态化 | Flutter + Dart 三端一体化动态化平台实践

    导读 FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供 ...

  9. Flutter --- Dart简介

    一.简介 由Google主导开发,于2011年10月公开.它的开发团队由Google Chrome浏览器V8引擎团队的领导者拉尔斯·巴克主持,目标在于成为下一代结构化Web开发语言.类似JavaScr ...

  10. 用Flutter + Dart快速构建一款绝美移动App

    作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...

最新文章

  1. 2021美国科学天才奖发榜!16名华裔高中生入围「少年诺奖」
  2. 15.文件系统——软RAID的实现(二)(mdadm,watch, RAID1)
  3. Map类集合K/V能不能存储null值的情况
  4. 创建variant二维数组
  5. 用系统自带的SSH实现两台linux密钥认证访问
  6. canvas实现点连线动画
  7. 中国邮政国际挂号信网上查询
  8. spotbug常见错误心得
  9. 实用应聘技巧(转前沿讲座)
  10. 量化交易员珍藏的10本书,一般人不会教你的事
  11. 令人恶心的小米和神州优车集团面试之旅
  12. NUnit 入门知识
  13. 黑小米真不应该,如今它已是国货之光,成为国产手机在海外领军者
  14. mysql数据备份与导入
  15. QTP数据驱动和关键字驱动
  16. 加密U盘专业加密芯片方案
  17. 2018计算机系统结构全国卷,2018年10月高等教育自学考试全国统一命题考试02325计算机系统结构试卷及答案.doc...
  18. 天地图服务http转https报错
  19. 微信公众号网页H5跳转微信小程序
  20. 考研复试数据库原理课后习题(十)——数据库恢复技术

热门文章

  1. 【mysql】join的用法和修改数据表
  2. Spring Boot 集成 Spring Security 实现权限认证模块
  3. JS实现new关键字的功能
  4. framework7日期插件使用
  5. 学习OpenCV——OpenMP
  6. HDU 1102 Constructing Roads
  7. Linux c/c++ IDE(开发环境)
  8. 20175320 2018-2019-2 《Java程序设计》第8周学习总结
  9. 34.Odoo产品分析 (四) – 工具板块(5) – 设备及联系人目录(1)
  10. osx mount nfs/smb