Sobes.tech
Junior

Kada metodas laikomas perrašytu (overriding)?

sobes.tech AI

Atsakymas iš AI

Objekto orientuotame programavime metodas laikomas perrašytu (overriding), kai:

  1. Jis apibrėžtas pogrupyje su tuo pačiu pavadinimu, grąžinimo tipu ir parametrų sąrašu (parašu), kaip ir tėvų klasės metode.
  2. Tėvų klasės metodas nėra private.
  3. Pogrupio metodas neturi griežtesnio prieigos modifikatoriaus nei tėvų klasės metodas.
  4. Esant išimčių atvejams, perrašytas metodas negali deklaruoti patikrintų išimčių ([checked exceptions]), kurios yra bendresnės nei tos, kurios deklaruotos perrašomame metode.

Kviečiant perrašytą metodą iš pogrupio objekto, vykdoma pogrupio metodo versija. Tai pavyzdys vykdymo metu vykstančio polimorfizmo.

Pavyzdys Java kalba:

// java

class Animal {
    public void makeSound() {
        System.out.println("Bendra gyvūno garsas");
    }
}

class Dog extends Animal {
    @Override // @Override anotuacija patvirtina, kad metodas perrašytas
    public void makeSound() {
        System.out.println("Au au");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miau");
    }
}