Junior
O que é herança e polimorfismo em tipos de dados de referência?
sobes.tech IA
Resposta da IA
A herança é um mecanismo que permite a uma classe (classe filha, classe derivada) herdar propriedades e comportamentos de outra classe (classe base, classe pai). Isto promove a reutilização de código e a criação de hierarquias de classes.
O polimorfismo é a capacidade de objetos de diferentes classes responderem de forma diferente à mesma mensagem (chamada de método), dependendo do seu tipo concreto. No contexto da herança, isto muitas vezes manifesta-se através da sobrescrita de métodos da classe base na classe derivada.
Exemplo (Java):
// Classe base
class Animal {
public void makeSound() {
System.out.println("O animal faz um som");
}
}
// Classe derivada
class Dog extends Animal {
@Override // Sobrescrita do método
public void makeSound() {
System.out.println("Au au!");
}
}
// Classe derivada
class Cat extends Animal {
@Override // Sobrescrita do método
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objeto Dog, mas referência de tipo Animal
Animal myCat = new Cat(); // Objeto Cat, mas referência de tipo Animal
myDog.makeSound(); // Chama o método de Dog
myCat.makeSound(); // Chama o método de Cat
}
}
Neste exemplo:
- Herança: As classes
DogeCatherdam deAnimal. - Polimorfismo: As variáveis
myDogemyCatreferenciam objetosDogeCatrespetivamente, embora tenham o tipoAnimal. Ao chamarmakeSound(), o método do objeto é executado, não o do tipo da referência.