Sobes.tech
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.