Flutter

Dart面向对象编程二

2019-04-11  本文已影响0人  RobinZhao

继承

父类:

class Person {
  String name;
  int age;
  String _gender;
  bool get isAdult => age > 18;
  set aAge(int age) {
    this.age = age;
  }
  void run() {
    print('Person class run');
  }
}

子类:

class Student extends Person {

  ///重写父类getter方法
  @override
  bool get isAdult {
    return this.age > 10;
  }
  ///重写父类setter方法
  @override
  set aAge(int age) {
    this.age = age * 10;
  }
  ///重写父类方法
  @override
  void run() {
    print('Student run...');
  }
  void study() {
    print('Student study...');
  }
}

调用:

void test() {
  var student = Student();
  student.age = 11;
  student.aAge = 10;
  student.name = 'Robin';
  print(student.age); // 100
  print(student.isAdult); // true
  print(student.name); // Robin
  student.run(); // Student run...
  
  Person person = Student(); // 多态
  if (person is Student) {
    person.study(); // Student study...
  }
}

继承中的构造方法

构造方法执行顺序

抽象类

上一篇 下一篇

猜你喜欢

热点阅读