-
Notifications
You must be signed in to change notification settings - Fork 0
/
30-MIXIN.dart
38 lines (31 loc) · 903 Bytes
/
30-MIXIN.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// MIXIN
void main() {
final anim = Animal ();
anim.fn();
final crianca = Crianca();
crianca.fn();
}
mixin Jump {
int jumping = 10;
}
class Animal with Jump {
void fn() {print(jumping);}
}
/* Mixin permite usar codigo sem estabelecer uma relacao parent-chil ou super-sub. Jump pode ser algo
* a ser usado com seres humanos, maquinas etc. Em vez de criar uma super-super-super classe com Jump
* lah no inicio pra poder usar a heranca, o mixin permite usar caracteristicas e acoes a qualquer momento
* sem precisar ser de pai-filho. */
class Cat extends Animal {
void func() {
print(jumping); // a classe pai Animal tem um mixin com jump e isso permite a classe filha Cat usar tambme
; }
}
mixin Scream {
bool isScreaming = true;
}
class Crianca with Jump, Scream { // uma classe pode usar mais de um Mixin
void fn() {
print(jumping);
print(isScreaming);
}
}