FlutterDart中的继承

Posted 卡卡西Sensei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlutterDart中的继承相关的知识,希望对你有一定的参考价值。

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

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

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

🌹 喜欢就点个赞吧👍🌹

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

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

以上是关于FlutterDart中的继承的主要内容,如果未能解决你的问题,请参考以下文章

FlutterDart中的类和对象

FlutterDart中的匿名函数闭包

FlutterDart中的构造函数

FlutterDart中的Mixins混入你知道是什么吗?

FlutterDart中的varfinal 和 const基本使用

FlutterDart的方法中的可选参数方法作为参数传递