继承
- 根据类的先后顺序,可以将类分成
父类
和子类
- 子类通过
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);
}
下一节
抽象
网友评论