Problem z Polimorfizm i override

Problem z Polimorfizm i override
Władyslaw Parchomenko
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
0

Siemano wszystkim. Bardzo was proszę, objaśnijcie na czym polega polimorfizm i override... I jeszcze coś...

Mamy super class i dziedziczący. w Super klasie mamy metodę

Kopiuj
public void walk(){
      System.out.println("Chodzę");
}

Czyli w dzieziczącym też mamy tą metodę. Ale jeśli napiszę ją na nowo z takim samym imieniem w dziedziczącym klasie, to będzie nowa metoda i wtedy ta metoda public void walk() z głównej klasy nie będzie dziedziczyła ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Zawsze się dziedziczy i możesz to sprawdzić dodając sobie tam super.walk() w tej metodzie. Ale wywołując metodę na obiekcie pochodnym wywołasz tą nową. W ten sposób realizuje się wzorzec "Strategy" gdzie masz różne implemtacje tego samego interfejsu/tej samej nadklasy.
Popatrz jak działa np. takie List. Robisz sobie

Kopiuj
List<String> lista = new ArrayList<>();
lista.add("aaa");

Gdybyś zamiast new ArrayList<>(); dał new LinkedList<>(); to nadal wszystko jest ok, ale pod spodem woła sie już zupełnie inny kod.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.