Sobes.tech
Junior

Kada laikomas, kad metodas yra perrašytas?

sobes.tech AI

Atsakymas iš AI

Metodas laikomas perrašytu šiais atvejais:

  1. Jis paskelbtas vaikų klasėje.
  2. Turi tą patį pavadinimą kaip tėvų klasės metodas.
  3. Turi tą pačią signatūrą (parametrų skaičių ir tipus) ir parametrų tvarką.
  4. Turi grąžinamosios reikšmės tipą, suderinamą su tėvų klasės metodo grąžinamosios reikšmės tipu (kovariantiškumas, jei taikoma).
  5. Turi tą patį arba platesnį prieigos modifikatorių nei tėvų klasės metodas (daugelyje objektų orientuotų kalbų).
  6. Tėvų metodas paskelbtas kaip virtualus, abstraktus ar sąsajos (interface) metodas (kalbose, kuriose būtina aiškiai nurodyti perdengimo galimybę, pvz., C# su virtual raktiniu žodžiu).

Pavyzdys Java kalba:

// Tėvų klasė
class SuperClass {
    // Metodas, kurį galima perrašyti
    public void display() {
        System.out.println("Tai yra SuperClass display metodas.");
    }
}

// Vaikų klasė
class SubClass extends SuperClass {
    // Perrašytas display metodas
    @Override // Anotacija perdengimo patikrinimui kompiliavimo metu
    public void display() {
        System.out.println("Tai yra SubClass display metodas.");
    }
}

Python pavyzdys:

# Tėvų klasė
class SuperClass:
    # Metodas, kurį galima perrašyti
    def display(self):
        print("Tai yra SuperClass display metodas.")

# Vaikų klasė
class SubClass(SuperClass):
    # Perrašytas display metodas
    def display(self):
        print("Tai yra SubClass display metodas.")

Svarbiausia yra išlaikyti metodo pavadinimą ir signatūrą, tačiau keisti jo elgesį vaikų klasėje.