1
resposta

Resolução do Mão na Massa - Heranças

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)
1 resposta

Oi, Felipe! Tudo bem?

Excelentes códigos, parabéns pelo projeto! Espero que esteja gostando do curso! Colocar em execução as atividades propostas pelo professor em aula é uma prática muito importante para internalizarmos o conteúdo. Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!