zoukankan      html  css  js  c++  java
  • dart中类的继承

    super

    class Person {
        int age;
        string name;
        Person(int age, String name){
            this.age = age;
            this.name = name;
        }
        void sayhi(){
            print('my name is' this.name)
        }
    }
    
    class Worker extend Person{
        int salary;
        Worker(int age, string name, int salary) : super(age, name){  //super表示要继承父类的属性
            this.salary = salary;
        }
        @override  //告诉编译器和程序员他是一个重写覆盖父类的方法
        void sayhi(){
         super.sayhi()    //表示调用父类的sayhi方法 print(
    'my salary is'+ this.salary) } }

    在dart中是单继承只能继承单个父类,不能继承多个类,若想实现多继承必须通过多混合的方式实现。extend关键字将变成with来实现混合

    混合:同时具备多个类的方法

      若类中有一个方法,混合里边也有一个方法,则优先使用类自身的方法;

      若只有混合里边有同名的方法,在最后面的会生效(如下例子中sleep会生效),因为他把前边的混合掉了

    void main(){
      var p = new Person(15,'sdf');
      p.eat(); //并不会报错
    }
    class
    Eat{ void eat(){ print('eat') } } class Sleep{ void sleep(){ print('sleep') } } class Person with Eat, sleep{ int age; string name; person(int age, string name){ this.age = age; this.name = name; } void sayhi(){ print('hi'); } }

    抽象类

      抽象类的关键词:abstract,只有方法的定义,没有方法的实现。存在的意义就是有这个想法但是还没有实现。如果person类继承了抽象类,则抽象类中方法的实现便交给继承者实现;

      抽象类另一个特点是不能被实例化

    abstract class Chouxiang{
        void ya()
    }
    
    class person extend Chouxiang{
        void ya(){
            print('sdf')
        }
    }
  • 相关阅读:
    IT人士必去的10个网站
    c++怎样让函数返回数组
    vs中“Stack around the variable was corrupted”的解决方案
    c++ eof()函数
    bat开发小工具以及使用
    Python接口自动化(一)---json数据类型取值
    MAVEN编译错误解决:maven only whitespace content allowed before start
    shell常用命令总结总结
    shell打包和解压
    java总结笔记
  • 原文地址:https://www.cnblogs.com/xhrr/p/11357452.html
Copyright © 2011-2022 走看看