Classe veiculo.py
class Veiculo:
    def __init__(self, marca, modelo):
        self._marca = marca
        self._modelo = modelo
        self._ligado = False 
    
    def __str__(self):
        ligado_str = 'ligado' if self._ligado else 'desligado'
        return f'{self._marca} {self._modelo} - Estado: {ligado_str}'
Classe carro.py
from veiculo import Veiculo
class Carro(Veiculo):
    def __init__(self, marca, modelo, portas):
        super().__init__(marca, modelo)
        self._portas = portas
    
    def __str__(self):
        return super().__str__() + f', Portas: {self._portas}'
Classe moto.py
from veiculo import Veiculo
class Moto(Veiculo):
    def __init__(self, marca, modelo, tipo):
        super().__init__(marca, modelo)
        self._tipo = tipo
    
    def __str__(self):
        return super().__str__() + f', Tipo: {self._tipo}'
Classe app.py
from carro import Carro
from moto import Moto
def main():
    # Instanciando objetos
    carro1 = Carro('Toyota', 'Corolla', 4)
    carro2 = Carro('Honda', 'Civic', 2)
    carro3 = Carro('Hyundai', 'Creta', 4) 
    
    moto1 = Moto('Harley-Davidson', 'Sportster', 'Esportiva')
    moto2 = Moto('Honda', 'CB 500', 'Casual')
    
    # Alterando o estado dos veículos para "ligado"
    carro1._ligado = True
    moto2._ligado = True
    
    # Exibindo informações
    print("Resultados para os carros:")
    print(carro1)
    print(carro2)
    print(carro3)
    
    print("\nResultados para as motos:")
    print(moto1)
    print(moto2)
if __name__ == '__main__':
    main()
Terminal
Resultados para os carros:
Toyota Corolla - Estado: ligado, Portas: 4
Honda Civic - Estado: desligado, Portas: 2
Hyundai Creta - Estado: desligado, Portas: 4
Resultados para as motos:
Harley-Davidson Sportster - Estado: desligado, Tipo: Esportiva
Honda CB 500 - Estado: ligado, Tipo: Casual
 
            