Dart by Example: Inheritance

1. /// Abstract classes can't be instantiated,
2. /// but can contain some implementation.
3. abstract class Animal {
4. String name;
5. Animal(this.name);
6. String get noise;
7. }

9. /// Classes can be extended to share functionality
10. class Dog extends Animal {
11. Dog(String name) : super(name);
12. String get noise => 'bark!';
13. }

15. /// Classes can implement other classes if they
16. /// define all of the fields
17. class Pikachu implements Animal {
18. String name = 'Pikachu';
19. String get noise => 'pika!';
20. }

22. void releaseAnimals(Iterable animals) {
23. animals.forEach((a) => print('${a.name} has been released: ${a.noise}'));
24. }

26. main() {
27. var barry = new Dog('Barry');
28. var pika = new Pikachu();
29. releaseAnimals([barry, pika]);
30. }
1. $ dart inheritance.dart
2. Barry has been released: bark!
3. Pikachu has been released: pika!

by @jryanio | source | license