O Que Você Vai Aprender
Nesta seção de exercícios, você colocará em prática os conceitos de herança e sobrescrita de métodos para construir uma hierarquia de classes de veículos, demonstrando polimorfismo.
🌳 Criar Hierarquia de Classes
Desenvolver uma superclasse e suas subclasses.
🔄 Sobrescrever Métodos
Implementar um método com comportamento específico em subclasses.
Desafios Propostos
Siga os passos abaixo para construir a hierarquia de classes `Veiculo`, `Carro` e `Moto`.
-
✓
1. Crie uma classe `Veiculo`
Com atributos: `marca` e `modelo`.
class Veiculo: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def exibir_dados(self): return f"Veículo: {self.marca} {self.modelo}"
-
✓
2. Crie as subclasses `Carro` e `Moto`
Ambas devem herdar de `Veiculo`.
class Carro(Veiculo): # ... class Moto(Veiculo): # ...
-
✓
3. Adicione atributos extras às subclasses
- Classe `Carro`: atributo extra `portas`.
- Classe `Moto`: atributo extra `cilindradas`.
class Carro(Veiculo): def __init__(self, marca, modelo, portas): super().__init__(marca, modelo) self.portas = portas class Moto(Veiculo): def __init__(self, marca, modelo, cilindradas): super().__init__(marca, modelo) self.cilindradas = cilindradas
-
✓
4. Sobrescreva `exibir_dados()`
Crie o método `exibir_dados()` na classe `Veiculo` e sobrescreva-o nas subclasses (`Carro` e `Moto`) para exibir também seus atributos específicos.
class Veiculo: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def exibir_dados(self): return f"Veículo: {self.marca} {self.modelo}" class Carro(Veiculo): def __init__(self, marca, modelo, portas): super().__init__(marca, modelo) self.portas = portas def exibir_dados(self): # Sobrescrita base_dados = super().exibir_dados() return f"{base_dados}, Portas: {self.portas}" class Moto(Veiculo): def __init__(self, marca, modelo, cilindradas): super().__init__(marca, modelo) self.cilindradas = cilindradas def exibir_dados(self): # Sobrescrita base_dados = super().exibir_dados() return f"{base_dados}, Cilindradas: {self.cilindradas}cc"
Simulador: Teste Sua Hierarquia de Veículos
Crie diferentes tipos de veículos e chame seus métodos `exibir_dados()` para ver a sobrescrita em ação.
Classes `Veiculo`, `Carro` e `Moto` (simuladas em JavaScript)
As classes foram implementadas em JavaScript para simular o comportamento de herança e sobrescrita em Python, permitindo interações em tempo real.