请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么命名构造 调用父类构造器的时候 参数里拿不到name

``` /// 定义一个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的情况。

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2019-11-11 09:03:24

因为在构造方法中你并没有将它和当前类的变量进行关联也就是赋值给当前类的变量。

可参考:

Student.cover(Student stu) : super(stu.name, stu.age) {
  this.name = stu.name;
  this.age = stu.age;
  print('命名构造方法');
}


1 回复 有任何疑惑可以回复我~
  • 他问的不是父类的构造函数的输出么?跟下面这个关联什么关系
    回复 有任何疑惑可以回复我~ 2020-08-14 21:13:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信