Junior
Ce sunt moștenirea și polimorfismul în tipurile de date referință?
sobes.tech AI
Răspuns de la AI
Moștenirea este un mecanism care permite unei clase (clasa derivată, clasa copil) să preia proprietățile și comportamentul altei clase (clasa de bază, clasa părinte). Acest lucru promovează reutilizarea codului și crearea ierarhiilor de clase.
Polimorfismul este capacitatea obiectelor din clase diferite de a răspunde diferit la aceeași mesaj (apel de metodă), în funcție de tipul lor concret. În contextul moștenirii, acest lucru se manifestă adesea prin suprascrierea metodelor clasei de bază în clasa derivată.
Exemplu (Java):
// Clasa de bază
class Animal {
public void makeSound() {
System.out.println("Animalul face un sunet");
}
}
// Clasa derivată
class Dog extends Animal {
@Override // Suprascrierea metodei
public void makeSound() {
System.out.println("Ham!");
}
}
// Clasa derivată
class Cat extends Animal {
@Override // Suprascrierea metodei
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Obiect Dog, dar referință de tip Animal
Animal myCat = new Cat(); // Obiect Cat, dar referință de tip Animal
myDog.makeSound(); // Se apelează metoda Dog
myCat.makeSound(); // Se apelează metoda Cat
}
}
În acest exemplu:
- Moștenire: Clasele
DogșiCatmoștenesc de laAnimal. - Polimorfism: Variabilele
myDogșimyCatfac referire la obiecteDogșiCatrespectiv, chiar dacă au tipulAnimal. La apelareamakeSound(), se execută metoda obiectului, nu cea a tipului de referință.