【Dart】类与对象-继承

继承

  • 根据类的先后顺序,可以将类分成父类子类
  • 子类通过extends关键字继承父类
    • 继承后,子类可以使用父类的中,可见的内容(属性或方法)
  • 子类中,可以通过@override元数据来标记"覆写"方法
    • "覆写"方法:子类中与父类中同名的方法
  • 子类中,可以通过super关键字来引用父类中,可见的内容
    • 属性
    • 方法(普通构造函数,命名构造函数)
class Father {
  String name = '刘备';
  num _money = 10000;

  say() {
    print('我是$name');
  }

  get getMoney {
    return _money;
  }

  String job;

  Father(this.job);
  Father.origin(this.job);
}


---
import 'Father.dart';

class Son extends Father {
  String name = '刘禅';

  // Son(String job) :super(job)

  @override
  say() {
    super.say();
    print('我是刘禅,我爹是${super.name},他的工作是${super.job}');
  }

  //继承命名构造函数
  // Son(String job) : super.origin(job);
  Son.origin(String job) :super.origin(job);
}
---
import 'Father.dart';
import 'Son.dart';

void main() {
  var f = new Father('皇帝');
  print(f.name);
  // var s = new Son('皇帝');
  var s =new Son.origin('卖草鞋的');
  print(s.name);
  //子类不能访问父类的私有内容,只能继承可见的内容
  // print(s._money);
  print(s.getMoney);
  s.say();
  print(s.name);
}

下一节抽象

你可能感兴趣的:(【Dart】类与对象-继承)