zoukankan      html  css  js  c++  java
  • 07Dart 类的继承

    本篇从大地老师《Dart 入门实战教程》学习整理而来。

    1. 子类使用extends关键词来继承父类
    2. 子类会继承父类里面可见的属性和方法 但是不会继承构造函数
    3. 子类能复写父类的方法 getter和setter

    简单继承

    • 继承的类就有了父类的属性和非静态方法
    class Person {
      String name='张三';
      num age=20; 
      void printInfo() {
        print("${this.name}---${this.age}");  
      } 
    }
    class Web extends Person{
    
    }
    main(){
      Web w=new Web();
      print(w.name); // 张三
      w.printInfo(); // 张三---20
    }
    

    super 关键词

    • 实例化子类给父类构造函数传参
    class Person {
      late String name;
      late num age;
      Person(this.name, this.age);
      void printInfo() {
        print("${this.name}---${this.age}");
      }
    }
    
    class Web extends Person{
      late String sex;
      Web(String name, num age,String sex) : super(name, age){
        this.sex=sex;
      }
      run(){
       print("${this.name}---${this.age}--${this.sex}");  
      }
      
    }
    
    main() {
      Web w=new Web('张三', 12,"男");
      w.printInfo(); // 张三---12
      w.run(); // 张三---12--男
    }
    

    复写父类的方法

    • @override 子类继承父类,子类中与父类相同的方法将会覆盖继承自父类的非静态方法
    class Person {
      String name;
      num age;
      Person(this.name, this.age);
      void printInfo() {
        print("${this.name}---${this.age}");
      }
    
      work() {
        print("${this.name}在工作...");
      }
    }
    
    class Web extends Person {
      Web(String name, num age) : super(name, age);
      // 子类自己的方法
      run() {
        print('run');
        // 子类调用父类的方法
        super.work();  // 李四在工作...
      }
    
      //覆写父类的方法
      @override //可以写也可以不写  建议在覆写父类方法的时候加上 @override
      void printInfo() {
        print("姓名:${this.name}---年龄:${this.age}");
      }
    
      @override
      work() {
        print("${this.name}的工作是写代码");
      }
    }
    
    main() {
      Web w = new Web('李四', 20);
      w.printInfo(); // 姓名:李四---年龄:20
      w.work(); // 李四的工作是写代码
    }
    
  • 相关阅读:
    常见问题汇总
    python的正则表达式
    Python 程序读取外部文件、网页的编码与JSON格式的转化
    第三方仓库PyPI
    文件名称一定不要设置为某些模块名称,会引起冲突!
    迟来的博客
    FENLIQI
    fenye
    Notif
    phpv6_css
  • 原文地址:https://www.cnblogs.com/johu/p/15704074.html
Copyright © 2011-2022 走看看