veiculo.py
from abc import ABC, abstractmethod
class Veiculo(ABC):
def __init__(self, marca, modelo):
self._marca = marca
self._modelo = modelo
self._ligado = False
@abstractmethod
def ligar(self):
if not self._ligado:
self._ligado = True
print("O veículo foi ligado")
else:
print("O veículo já está ligado.")
@abstractmethod
def desligar(self):
if self._ligado:
self._ligado = False
print("O veículo foi desligado")
else:
print("O veículo já está desligado.")
def __str__(self):
return f"Marca: {self._marca}\nModelo: {self._modelo}\nEstado: {'ligado' if self._ligado else 'desligado'}"
carro.py
from veiculo import Veiculo
class Carro(Veiculo):
def __init__(self, marca, modelo, cor):
super().__init__(marca, modelo)
self._cor = cor
def ligar(self):
if not self._ligado:
self._ligado = True
print("O carro foi ligado.")
else:
print("O carro já está ligado.")
def desligar(self):
if self._ligado:
self._ligado = False
print("O carro foi desligado")
else:
print("O carro já está desligado.")
def __str__(self):
return f"{super().__str__()}\nCor: {self._cor}"
main.py
from carro import Carro
carro1 = Carro("Honda", "Fit", "Prata")
print("Antes de ligar:")
print(carro1)
print("\nDepois de ligar: ")
carro1.ligar()
print(carro1)
print("\nTentando ligar novamente: ")
carro1.ligar()
carro2 = Carro("Fiat", "Uno", "Branco")
print("\nCarro 2:")
print(carro2)
carro3 = Carro("Toyota", "Corola", "Cinza")
print("\nCarro 3:")
print(carro3)
print("\nTentando desligar carro desligado: ")
carro3.desligar()