-
Notifications
You must be signed in to change notification settings - Fork 0
/
24-Inheritance.dart
39 lines (28 loc) · 1.02 KB
/
24-Inheritance.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
39
void main() {
// INHERITANCE
Car car1 = Car();
print(car1.isEngineWorking); // car1 herdou variaveis e metodos da class Vehicle por isso imprime aqui
print(car1.noOfWheels);
Truck truck1 = Truck();
print(truck1.noOfWheels);
Vehicle car2 = Car(); // Um veículo pode ser criado definindo-o como um carro.
// Quando faço isso, nao consigo acessar variaveis de car chamando car2 porque este eh um veiculo
// print(car2.noOfWheels); gera erro! Dart acha que car2 é veiculo e nao um Car
print((car2 as Car).noOfWheels); // agora acessa variavel noOfWheels do objeto car2 transformando car2 em Car de verdade
Vehicle car3 = Truck();
print((car3 as Truck).noOfWheels);
}
class Vehicle {
int speed = 10;
bool isEngineWorking = false;
bool isLightOn = true;
void accelerate()=> speed+=10;
}
class Car extends Vehicle {
int noOfWheels = 4;
void printSomething() => print(noOfWheels);
}
class Truck extends Vehicle {
int noOfWheels = 8;
void printSomething()=>print(noOfWheels);
}