mryangjx 2019-11-04
静态方法和静态属性(static):
class Person{ String name; int age; Person(this.name,this.age); printInfo(){ //在字符串中,可以直接通过${}访问类的属性和方法 print('${this.name}---${this.age}'); } } class Web extends Person{ /** *super 是调用父类的构造方法 *构造函数是无法继承,所有在子类继承父类的时候,需要super来实现父类的构造方法 */ Web(String name, num age) : super(name, age); // override可写,可不写,建议写上 @override printInfo(){ print('子类中的${this.name}---${this.age}'); } } main(){ /** * Dart中对象操作符 * ?条件运算符 * is类型判断 * ..级联操作 */ Person p1; // 下面表示如果p1是空,表示不执行后面的,如果有值,执行后面的 p1?.printInfo(); Person p2=new Person('张三',20); p2?.printInfo(); p2..name='李四' ..age=20 ..printInfo(); }
抽象类中有抽象方法,其是没有方法体的,继承抽象类的子类必须要实现子类的抽象方法
abstract class Animal{ // 抽象方法,子类必须要实话抽象方法 eat(); } class Dog extends Animal{ @override eat() { print('我是小狗'); } } main(){ /** * 抽象类(abstract主要用来指定标准) * 在dart中,定义接口和定义抽象类一样,都使用abstract,**dart中接口没有使用interface定义** * 抽象类不能被实例化,只有继承他的子类实例化 * 接口里面必须全部是抽象方法,没有普通的方法,但是抽象类中可以既有普通方法,也有抽象方法 */ Dog d=new Dog(); d.eat(); }
一个类可以实现多个接口,但是只能单继承抽象类,如果模仿多继承,可以使用mixins,作为mixins的类只能继承Object,不能继承其他的类,作为mixins的类不能有构造函数,如下:
class A{ printA(){ print('A'); } } class B{ printB(){ print('B'); } } //如果模仿多继承,可以使用mixins class C with A,B{ } main(){ C c1=new C(); c1.printB(); }
// 泛型方法,注意需要加上三个地方T T getData<T>(T data){ return data; } main(){ print(getData<String>('我叫唐凯震')); }
import 'package:http/http.dart'; main(){ /** * 库 * dart中,库通过import引入,注意是没有from * 每个dart文件都是一个库 * 库分类: * 1,自定义库 * 2,系统内置的库:import 'dart:xxx' * 3,第三方库,托管到pub包管理系统中的 * 第三方库可以从下面的地址中寻找: * https://pub.dev/packages * * 使用第三方库按照下面步骤: * 1,创建pubspec.yaml文件 * 2,配置pubspec.yaml文件 * 3,运行put get获取远程库 * 5,看文档引入库使用 */ }
con