0
respostas

Hora da prática: métodos especiais e atributos

# Crie uma classe chamada Veiculo com um método abstrato chamado ligar.
# No mesmo arquivo, crie um construtor para a classe Veiculo que aceita os parâmetros marca e modelo.

from abc import ABC, abstractmethod

class Veiculo(ABC):

    def __init__(self, marca, modelo):
        self._marca = marca
        self._modelo = modelo

    @abstractmethod
    def ligar(self):
        pass
        
# Crie uma nova classe chamada Carro que herda da classe Veiculo.
# No construtor da classe Carro, utilize o método super() para chamar o construtor da classe pai e atribua o atributo específico cor à classe filha.

from exercicios import Veiculo

class Carro(Veiculo):

    def __init__(self, marca, modelo, cor):
        super().__init__(marca, modelo)
        self.cor = cor

    def ligar(self):
        return f"O carro de modelo {self._modelo}, atualmente, se encontra ativado."
        
        
# Em um arquivo chamado main.py, importe a classe Carro.

from exercicios_um import Carro

# No arquivo main.py, instancie três objetos da classe Carro com diferentes características, como marca, modelo e cor.

carro_um = Carro(marca="Rolls-Royce", modelo= "La Rose Noire Droptail", cor="Vermelho")
carro_dois = Carro(marca="Bugatti", modelo="Centodieci", cor="Branco")
carro_tres = Carro(marca="Pagani", modelo="Zonda HP Barchetta", cor="Preto")

print(f"Marca do carro: {carro_um._marca} | Modelo do carro: {carro_um._modelo} | Cor do carro: {carro_um.cor}")
print(f"Marca do carro: {carro_dois._marca} | Modelo do carro: {carro_dois._modelo} | Cor do carro: {carro_dois.cor}")
print(f"Marca do carro: {carro_tres._marca} | Modelo do carro: {carro_tres._modelo} | Cor do carro: {carro_tres.cor}")