Problem z Polimorfizm i override

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ę

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 ?

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1