OOPS

class User {
  String name;
  int age;

  // Long way (Java style)
  // User(String name, int age) {
  //   this.name = name;
  //   this.age = age;
  // }

  // Dart way (automatic assignment)
  User(this.name, this.age);
}

class Animal {
  String? name;
  Animal(String name) {
    this.name = name;
  }

  void printName() {
    print("Hello: $name");
  }
}

class Dog extends Animal {
  Dog(String name) : super(name);
}

void main() {
  Dog d = Dog("Max");
  d.printName();
}