dart总结

构造函数

默认构造函数

不声明构造函数,则提供默认的无参构造,和java类似。

普通构造函数
class Point{
  num x,y;
  //this指当前实例,Dart中,只有名称冲突时才使用它,否则,Dart的代码风格是要省略this的。
  Point(num x,num y){
    this.x = x ;
    this.y = y ; 
  }
}
普通构造函数(简化写法)
class Point{
  num x,y;
  Point(this.x,this.y);
}
构造函数不是继承

“子类不从父类继承构造函数(下面说到的命名函数也不会继承)。没有声明构造函数的子类只有默认的构造函数(没有参数,没有名称)而不是从父类继承的构造函数。”

class Vehicle{
  Vehicle(){
    print("super Constructor") ;
  }
  Vehicle.get(){
    print("super Run") ;
  }
  Vehicle.create(){
    print("super create") ;
  }
}
class Audi extends Vehicle{
  Audi(){
    print("Audi Constructor") ;
  }
  Audi.get():super.get(){
    print("Audi run");
  }
  Audi.create(){
    print("Audi create") ;
  }
}
//调用
Audi audi0 = Audi() ;
Audi audi1 = Audi.create() ;
Audi audi2 = Audi.get() ;
//打印结果
I/flutter (  660): super Constructor
I/flutter (  660): Audi Constructor

I/flutter (  660): super Constructor
I/flutter (  660): Audi create

I/flutter (  660): super Run
I/flutter (  660): Audi run

总结:
1。无论是普通的构造方法,还是命名构造方法,都会默认地先调用父类的无参构造函数。
2。如果子类有特有的构造函数,会先调用父类的无参默认的构造函数,再调用子类的特有构造。
3。如果想要调用父类的特定的构造函数,需要使用双引号:super来指定。
简而言之:所有的构造函数,如果不指定,只会调用父类默认的无参构造。

可选参数传参

在这里插入图片描述
在这里插入图片描述

计算属性

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值