Junior — Middle
Какви промени трябва да се направят в дефиницията на класа, за да се осигури възможността за използване на полиморфизъм?
sobes.tech AI
Отговор от AI
За да осигурите възможност за използване на полиморфизъм в Java, е необходимо:
- Да направите методите, които се предполага да бъдат презаписвани в подкласовете, не статични и не финални.
- Да използвате ключовата дума
overrideв подкласовете за презаписване на методите на базовия клас. - В базовия клас методите трябва да бъдат обявени като
publicилиprotected(за да могат подкласовете да ги презаписват).
Пример:
class Animal {
public void sound() {
System.out.println("Някакъв звук");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Лаене");
}
}
// Използване на полиморфизъм
Animal animal = new Dog();
animal.sound(); // Ще изведе "Лаене"
Затова, за да поддържате полиморфизма, методите трябва да са виртуални (в Java всички нестатични методи по подразбиране са виртуални). Основното е да не правите методите static или final.