Przesłanianie metody

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Co to jest przesłanianie metody?

Przesłanianie metody oznacza zdefiniowanie w klasie pochodnej metody o tej samej nazwie i zwykle tej samej sygnaturze jak metoda w klasie bazowej, ale z inną implementacją. Dzięki temu obiekt klasy pochodnej może zachowywać się inaczej niż obiekt klasy bazowej, mimo że wywoływana jest metoda o tej samej nazwie.

W wielu językach programowania ten mechanizm jest nazywany także nadpisywaniem metody (method overriding).

Przykład w Javie

class Zwierze {
    void dajGlos() {
        System.out.println("Dźwięk zwierzęcia");
    }
}

class Pies extends Zwierze {
    @Override
    void dajGlos() {
        System.out.println("Hau hau");
    }
}

Metoda dajGlos() istnieje w klasie bazowej Zwierze, ale klasa pochodna Pies dostarcza własną wersję tej metody.

Po co stosuje się przesłanianie?

  • aby zmienić zachowanie odziedziczonej metody,
  • aby dopasować działanie metody do konkretnej klasy pochodnej,
  • aby korzystać z polimorfizmu,
  • aby pisać kod bardziej elastyczny i łatwiejszy do rozbudowy.

Przesłanianie a przeciążanie

Przesłanianie nie jest tym samym co przeciążanie metod.

  • Przesłanianie: metoda w klasie bazowej i pochodnej ma tę samą nazwę oraz podobną lub identyczną sygnaturę, ale inną implementację.
  • Przeciążanie: w tej samej klasie istnieje kilka metod o tej samej nazwie, ale z różnymi parametrami.

Wniosek egzaminacyjny

Jeżeli w pytaniu pojawia się klasa bazowa i pochodna oraz ta sama metoda z inną implementacją w klasie pochodnej, chodzi o przesłanianie metody.