【Flutter】Dart中的继承

1. 写在前面

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

Flutter

【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 子类重写父类方法

  • 子类重写父类方法
@override
  run(){
    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. 写在后面

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

🌹 喜欢就点个赞吧👍🌹

🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹

🌹欢迎大家留言交流,批评指正,转发请注明出处,谢谢支持!🌹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西Sensei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值