• dart子类的继承


    1 Dart中类的继承

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

    2Dart Web类继承Person这个类

    class Person {
      String name = '张三';
      int age = 19;
      void getInfo() {
        //推荐使用这样的写法
        print("${this.name}====${this.age}");
      }
    }
    
    // Web这个类继承父类Person;
    // 可见属性和方法是指 父类公开的属性和方法
    class Web extends Person {}
    void main() {
      Person w = new Web();
      print(w.name);//输出张三
    }
    

    2 Dart中 super关键字的使用

    class Person {
      String name;
      int age;
      Person(this.name, this.age);
      void getInfo() {
        //推荐使用这样的写法
        print("${this.name}====${this.age}");
      }
    }
    
    // Web这个类继承父类Person;
    // 可见属性和方法是指 父类公开的属性和方法
    class Web extends Person {
      //  Web(String name, int age) 表示Web类的构造函数
      //  : super(name, age) 在实例之前,给内部初始化数值
      Web(String name, int age) : super(name, age);
    }
    void main() {
      Web w = new Web('张三', 23);
      w.getInfo(); //张三====23
    }
    

    3 Dart 子类自己的属性和方法

    class Person {
      String name;
      int age;
      Person(this.name, this.age);
      void getInfo() {
        print("${this.name}====${this.age}");
      }
    }
    
    // Web这个类继承父类Person;
    // 可见属性和方法是指 父类公开的属性和方法
    class Web extends Person {
      //  Web(String name, int age) 表示Web类的构造函数
      //  : super(name, age) 在实例之前,给内部初始化数值
      String sex;
      Web(String name, int age, String sex) : super(name, age) {
        this.sex = sex;
      }
      // 子类自己的方法
      run() {
        print("${this.name}====${this.age}====${this.sex}");
      }
    }
    
    void main() {
      Web w = new Web('张三', 23, '男');
      // 如果子类有自己的方法,就调用子类的方法;如果没有就去找父类的方法
      w.run(); //张三====23
    }
    

    4 Dart 命名构造函数传递参数

    class Person {
      String name;
      int age;
      Person(this.name, this.age);
      // 定义了一个命名构造函数
      Person.xxxx(this.name, this.age);
    
      void getInfo() {
        print("${this.name}====${this.age}");
      }
    }
    
    // Web这个类继承父类Person;
    // 可见属性和方法是指 父类公开的属性和方法
    class Web extends Person {
      String sex;
      // super.xxxx(name, age)命名构造函数传递参数哈~~~
    
      //给默构造函数传递参数,Web(String name, int age, String sex)
      //super.xxxx(name, age) 调用父类自定义构造函数
      Web(String name, int age, String sex) : super.xxxx(name, age) {
        this.sex = sex;
      }
      // 子类自己的方法
      run() {
        print("${this.name}====${this.age}====${this.sex}");
      }
    }
    
    void main() {
      Web w = new Web('张三', 23, '男');
      // 如果子类有自己的方法,就调用子类的方法;如果没有就去找父类的方法
      w.run(); //张三====23
    }
    

    4 Dart 重写父类方法

    class Person {
      String name;
      int age;
      Person(this.name, this.age);
      void getInfo() {
        //推荐使用这样的写法
        print("${this.name}====${this.age}");
      }
    }
    
    // Web这个类继承父类Person;
    // 可见属性和方法是指 父类公开的属性和方法
    class Web extends Person {
      //给默构造函数传递参数,Web(String name, int age, String sex)
      //super(name, age) 调用父类默认构造函数
      Web(String name, int age) : super(name, age);
    
      // 覆写父类方法 通常要加这个@override
      @override
      getInfo() {
        print('覆写父类方法==>${this.name}====${this.age}');
      }
    }
    
    void main() {
      Web w = new Web('张三', 23);
      w.getInfo(); //覆写父类方法==>张三====23
    }
    
    作者:流年少年
    出处:https://www.cnblogs.com/ishoulgodo/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    jdk git maven Jenkins的配置
    jar包部署脚本
    Mybaits和Spring的那点事
    HashMap三两事
    排序算法学习
    MySQL杂谈
    一个最简单的微服务架构
    SpringBoot全家桶
    nginx上传
    使用xshell在linux服务器上部署node项目
  • 原文地址:https://www.cnblogs.com/ishoulgodo/p/14396667.html
Copyright © 2020-2023  润新知