1
resposta

Hora da prática: instância de uma classe

class Veiculo: def init(self, marca, modelo): self._marca = marca self._modelo = modelo self._ligado = False

def __str__(self):
    return (f'Marca: {self._marca}\n'
            f'Modelo: {self._modelo}\n'
            f'Ligado: {self._ligado}\n')

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'Marca: {self._marca}\n'
            f'Modelo: {self._modelo}\n'
            f'Ligado: {status}\n'
            f'Portas: {self._portas}\n')

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'Marca: {self._marca}\n'
            f'Modelo: {self._modelo}\n'
            f'Status: {status}\n'
            f'Tipo: {self._tipo}\n')

from moto import Moto from carro import Carro

gol = Carro('Volkswagen', 'G5', '4') corolla = Carro('Toyota', 'Corolla 2025', '4') kicks = Carro('Hyundai', 'Kicks Advance', '4') cbr = Moto('Honda', 'CBR 650', 'Esportiva') cb500 = Moto('Honda', 'CB 500F', 'Esportiva') cg160 = Moto('Honda', 'CG 160 Start', 'Passeio')

print(f'Informações de carros cadastrados:') print(gol, corolla, kicks, sep='\n') print() print(f'Informações de motos cadastradas:') print(cbr, cb500, cg160, sep='\n')

1 resposta

Oi Bruno,

Você está explorando a herança em Python, isso é ótimo! 👍

Seu código está bem estruturado, com as classes Veiculo, Carro e Moto demonstrando claramente o conceito de herança.

A sobrescrita do método __str__ em Carro e Moto para adicionar informações específicas de cada tipo de veículo também está correta. 💪

Para saber mais: Documentação oficial do Python sobre propriedades.

Continue praticando e explorando as possibilidades da orientação a objetos! 🤔