Dart 入门到跑路 ------ 类的继承、静态成员、抽象类、接口(五)

静态成员

  使用static 关键字来实现类级别的变量和函数
  静态方法不能访问非静态成员
  
 class Person{
   static String name = '1';
   static void show(){
   print(11111);
   }
}

对象操作符

 ?    条件运算符
 as  类型转换
 is   类型判断
 ..   级联操作

class Person {
  String name;
  num age;
  Person(this.name,this.age);
  void printInfo() {
    print("${this.name}---${this.age}");  
  }
  
}

main(){ 

  // Person p;
  // p?.printInfo();


  //  Person p=new Person('张三', 20);
  //  p?.printInfo();



    // Person p=new Person('张三', 20);
    // if(p is Person){
    //     p.name="李四";
    // } 
    // p.printInfo();
    // print(p is Object);
}

类的继承

    子类通过extends 关键字来继承父类
    子类会继承父类里面共有方法 不会继承构造函数
    子类不能重写父类的getter和setter

class s extends Person{
  s(String name,num age ): super(name,age){
  }
}

//类初始化后 super 的意思是把子类的构造函数传递给父类中

// 子类复写父类的方法 添加
@override 
//自类调用父类方法
super.xxxx();

抽象类

主要用于定义标准,子类可以继承抽象类也可实现抽象类接口

1.抽象类通过abstract 关键字来定义
2.dart中抽象方法不能用abstract声明,dart中没有方法体的方法称为抽象类
3.子类继承抽象类必须实现抽象方法
4.如果抽象类当做接口实现的话必须实现抽象类定义所有属性和方法
5.抽象类不能被实例化只有子类继承
abstract class More{
   eat();
   run();
   printInfp(){
     print('抽象方法')
   }
}

接口

如 golang 中interface{}

dart 中普通类或抽象类都可以作为接口被实现,使用 implements 关键字实现

dart 中接口如实现类是普通类,会将普通类和冲向中的属性的方法全部覆写一遍

抽象类可以定义抽象方法,一般使用抽象类定义接口

class demos implements more{
   @override
   ....
}

  • 一个类实现多个接口
  abstract classA{
     String name;
  }
 abstract classB{
     String name;
  }
class C implements A,B{
   @override
   printA(){
   ....
   }
    printB(){
   ....
   }
}
  • Mixins 多继承 关键字 with
1.mixins 类智能集成Object 不能继承其他类
2.mixins 没有构造函数
3.一个类可以mixins多个mixins类
4.不是接口不是继承

mixins 的实例是其超类的子类
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章