Dart Classes and OOP

Dart is fully object-oriented. Everything is an object.

Dart
class Student {
  String name;
  int age;
  Student(this.name, this.age);
  Student.guest() : name = 'Guest', age = 0;
  String introduce() => 'Hi, I am $name, age $age';
}

Inheritance

Dart
class Animal {
  String name;
  Animal(this.name);
  void speak() => print('$name makes a sound');
}
class Dog extends Animal {
  Dog(String name) : super(name);
  @override
  void speak() => print('$name barks');
}

Mixins

Dart
mixin Swimmable { void swim() => print('Swimming!'); }
mixin Flyable { void fly() => print('Flying!'); }
class Duck extends Animal with Swimmable, Flyable {
  Duck() : super('Duck');
}

Next: async.