Dart by Example: Mixins

1. import 'dart:math';

3. class Position {
4. int x;
5. int y;

7. double distanceTo(Position other) {
8. var dx = other.x - x;
9. var dy = other.y - y;
10. return sqrt(dx * dx + dy * dy);
11. }
12. }

14. class Square {
15. int width;
16. int height;

18. int get area => width * height;
19. }

21. // Classes can be mixed in using 'with'
22. class SquareView extends Square with Position {}

24. main() {
25. var origin = new Position()
26. ..x = 0
27. ..y = 0;

29. var square = new SquareView()
30. ..x = 5
31. ..y = 5
32. ..width = 10
33. ..height = 10;

35. print(square.distanceTo(origin));
36. print(square.area);
37. }
1. $ dart mixins.dart
2. 7.0710678118654755
3. 100

by @jryanio | source | license