1 - Crie uma Classe Pai (Veiculo): Implemente uma classe chamada Veiculo com um construtor que aceita dois parâmetros, marca e modelo. A classe deve ter um atributo protegido _ligado inicializado como False por padrão.
class Veiculo:
def __init__(self, marca, modelo):
self._marca = marca
self._modelo = modelo
self._ligado = False
2 - Construa o Método Especial str: Adicione um método especial str à classe Veiculo que retorna uma mensagem formatada com a marca, modelo e o estado de ligado/desligado do veículo.
class Veiculo:
def __init__(self, marca, modelo):
self._marca = marca
self._modelo = modelo
self._ligado = False
def __str__(self):
status = 'Ligado' if self._ligado else 'Desligado'
return f'{self._marca} | {self._modelo} | {status}'
veiculo_peugeot = Veiculo('Peugeot', 'Alure')
print(veiculo_peugeot)
3 - Crie uma Classe Filha (Carro): Agora, crie uma classe chamada Carro que herda da classe Veiculo. No construtor da classe Carro, inclua um novo atributo chamado portas que indica a quantidade de portas do carro.
from maonamassa.veiculo import Veiculo
class Carro(Veiculo):
def __init__(self, marca, modelo, portas):
super().__init__(marca, modelo)
self._portas = portas
4 - Implemente o Método Especial str na Classe Filha: Adicione um método especial str à classe Carro que estenda o método da classe pai (Veiculo) e inclua a informação sobre a quantidade de portas do carro.
from veiculo import Veiculo
class Carro(Veiculo):
def __init__(self, marca, modelo, portas):
super().__init__(marca, modelo)
self._portas = portas
def __str__(self):
status = 'Ligado' if self._ligado else 'Desligado'
return f'{self._marca} | {self._modelo} | Portas: {self._portas} | {status}'
carro_aleatorio = Carro('Ford', 'Qualquer', 4 )
print(carro_aleatorio)
5 - Crie uma Classe Filha (Moto): Similarmente, crie uma classe chamada Moto que também herda de Veiculo. Adicione um novo atributo chamado tipo ao construtor, indicando se a moto é esportiva ou casual.
from veiculo import Veiculo
class Moto(Veiculo):
def __init__(self, marca, modelo, tipo):
super().__init__(marca, modelo)
self._tipo = tipo
6 - Implemente o Método Especial str na Classe Filha (Moto): Adicione um método especial str à classe Moto que estenda o método da classe pai (Veiculo) e inclua a informação sobre o tipo da moto.
from veiculo import Veiculo
class Moto(Veiculo):
def __init__(self, marca, modelo, tipo):
super().__init__(marca, modelo)
self._tipo = tipo
def __str__(self):
status = 'Ligado' if self._ligado else 'Desligado'
return f'{self._marca} | {self._modelo} | {self._tipo} | {status}'
moto_harley = Moto('Harley', 'Qualquer', 'Casual')
print(moto_harley)
7 - Crie um Arquivo Main (main.py): Crie um arquivo chamado main.py no mesmo diretório que suas classes.
8 - Importe e Instancie Objetos: No arquivo main.py, importe as classes Carro e Moto. Em seguida, crie três instâncias de Carro e Moto com diferentes marcas, modelos, quantidade de portas e tipos.
9 - Exiba as Informações: Para cada instância, imprima no console as informações utilizando o método str.
from carro import Carro
from moto import Moto
carro_x = Carro('Chev', 'modelo X', 4)
carro_y = Carro('Renaut', 'marca Y', 4)
carro_z = Carro('Cherry', 'modelo Z', 2)
moto_x = Moto('Moto X', 'modelo X', 'Casual')
moto_y = Moto('Moto y ', 'modelo Y', 'Esportiva')
moto_z = Moto('Moto Z', 'modelo Z', 'Esportiva')
print(carro_x)
print(carro_y)
print(carro_z)
print(moto_x)
print(moto_y)
print(moto_z)