为什么命名构造 调用父类构造器的时候 参数里拿不到name
来源:5-8 带你揭开Flutter中的面向对象(命名构造方法)
旋涡鸣人_
2019-11-09
``` /// 定义一个Dart 类
class Person { String name; int age; Person(this.name, this.age) {
print('Person: constructor');
print(this.name);
print(this.age); } }
class Student extends Person { String _school; // 私有变量 类之外访问不到 String city; String country; String name; Student(this._school,String name, int age, {
this.city,
this.country = '中国' }) : name = '$country.$city',
super(name, age) {
print('super:constructor'); }
Student.cover(Student stu) : super(stu.name, stu.age) {
print("命名构造方法:"); }
void info() {
print('scholl:$_school');
print('name:${this.name}');
print('age:$age');
print('city:$city'); } } ``
print(this.name);
print(this.age); 里面在 调用命名构造器的时候 会出现null的情况。
写回答
1回答
-
CrazyCodeBoy
2019-11-11
因为在构造方法中你并没有将它和当前类的变量进行关联也就是赋值给当前类的变量。
可参考:
Student.cover(Student stu) : super(stu.name, stu.age) { this.name = stu.name; this.age = stu.age; print('命名构造方法'); }
112020-08-14
相似问题