学习Flutter从Dart开始系列(四)之面向对象下

1 前言

上一篇文章我们学习了Dart面向对象的一些基础内容,包括类与对象的声明,构造函数和初始化列表。今天我们将进一步深入了解Dart面向对象的内容。

继承

Dart支持单继承,使用extends关键字继承父类,通过super关键字可以调用父类的方法。

main(){
var dog = Dog();
dog.eat();      \\ can eat      
dog.run();      \\ dog can run
}

class Animal {
  void eat() {
    print("can eat");
  }
  void run() {
    print("can run");
  }
}

class Dog extends Animal {
  void eat() {
    super.eat();
  }

  void run() {
    print("dog can run");
  }
}

抽象类

使用 abstract 修饰符来定义 抽象类 — 抽象类不能实例化。 抽象类通常用来定义接口,以及部分实现。

main(){
var bird = Bird();
bird.eat();
bird.fly();
}

abstract class Animal {
  void eat() {
    print("can eat");
  }
  void fly();
}

class Bird extends Animal {
  @override
  void fly() {
     print("bird can fly");
  }
}

隐式接口

Dart中的接口与其他语言的接口都不相同,Dart中每个类都隐式的定义了一个接口,接口包含了该类所有的实例成员及其实现的接口,但是不包含构造函数。 如果要创建一个 A 类,A 要支持 B 类的 API ,但是不需要继承 B 的实现, 那么可以通过 A 实现 B 的接口。

main(){
var man = Man("Joe");
man.printName();   \\ Joe
man.walk();        \\Joe can walk
}

class people {
   String _name;

   void walk() {
     print("can walk");
   }

   printName() {
     print(this._name);
   }
}

class Man implements people {
  @override
  String _name;

  Man(this._name);
  @override
  printName() {
    print(this._name);
  }

  @override
  void walk() {
    print("${this._name} can walk");
  }

}

Mixin

Mixin 是复用类代码的一种途径, 复用的类可以在不同层级,之间可以不存在继承关系。通过创建一个继承自 Object 且没有构造函数的类,with 后面跟一个或多个混入的名称来 实现 一个 Mixin 。

void main() {
Car car = new Car();
car.work();   //Work with electric
}

abstract class Engine {
  void work();
}

class ElectricEngine implements Engine {
  @override
  void work() {
    print("Work with electric");
  }
}

class OilEngine implements Engine {
  @override
  void work() {
    print("Work with oil");
  }
}

class Tyre {
  String name;

  void run() { }
}

class Car = Tyre with ElectricEngine;

最后

今天主要简单介绍了Dart面向对象的继承,抽象类,隐式接口和Mixin,如果有问题,有问必回。点赞就是最大的支持,更多精彩文章和相关学习资料可以关注微信公众号QStack,追寻最纯粹的技术,享受编程的快乐。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值