Junior
Šta su nasleđivanje i polimorfizam u referentnim tipovima podataka?
sobes.tech АИ
Одговор од АИ
Наслеђивање је механизам који омогућава једној класи (подкласи, наследној класи) да преузме својства и понашање друге класе (основне, родитељске класе). Ово подстиче поновну употребу кода и стварање хијерархија класа.
Полиморфизам је способност објеката различитих класа да реагују различито на исту поруку (позив методе), у зависности од њиховог конкретног типа. У контексту наслеђивања, то се често манифестује преко преоптерећења метода основне класе у класи наследнику.
Пример (Java):
// Основна класа
class Animal {
public void makeSound() {
System.out.println("Животиња прави звук");
}
}
// Класа наследник
class Dog extends Animal {
@Override // Преоптерећење метода
public void makeSound() {
System.out.println("Гауу!");
}
}
// Класа наследник
class Cat extends Animal {
@Override // Преоптерећење метода
public void makeSound() {
System.out.println("Мјау!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Објекат Dog, али референца типа Animal
Animal myCat = new Cat(); // Објекат Cat, али референца типа Animal
myDog.makeSound(); // Позива метод Dog
myCat.makeSound(); // Позива метод Cat
}
}
У овом примеру:
- Наслеђивање: Класе
DogиCatнаслеђују одAnimal. - Полиморфизам: Променљиве
myDogиmyCatреферишу на објектеDogиCatредом, иако имају типAnimal. При позивуmakeSound()се извршава метод објекта, а не типа референце.