Sobes.tech
Junior

Kad metode tiek uzskatīta par pārrakstītu (overriding)?

sobes.tech AI

Atbilde no AI

Objektorientētajā programmēšanā metode uzskatāma par pārrakstītu (overriding), ja:

  1. Tā ir definēta apakšklasē ar to pašu nosaukumu, atgriešanas tipu un parametru sarakstu (parakstu), kā superklases metodē.
  2. Superklases metode nav private.
  3. Apakšklases metode nav stingrāka piekļuves modifikatora nekā superklases metode.
  4. Izņēmumu gadījumā, pārrakstītā metode nevar deklarēt pārbaudāmas izņēmumu ([checked exceptions]), kas ir vispārīgākas nekā tās, kas deklarētas pārrakstītajā metodē.

Kad tiek izsaukta pārrakstītā metode uz apakšklases objekta, tiek izpildīta apakšklases metode. Tas ir piemērs polimorfismam izpildes laikā.

Java piemērs:

// java

class Animal {
    public void makeSound() {
        System.out.println("Vispārīgs dzīvnieka skaņa");
    }
}

class Dog extends Animal {
    @Override // @Override anotācija apstiprina, ka metode ir pārrakstīta
    public void makeSound() {
        System.out.println("Vau vau");
    }
}

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