Witam,
Zastanawia mnie dlaczego tak mocno na rozmowach mówi się o polimorfizmie i w taki dziwny sposób.
Powiedzmy, że skupiam się na Javie.
Ja osobiście wielopostaciowość rozumiem tak, że są różne klasy, mniej lub bardziej podobne od siebie: obiekty różnych typów mogą wiązać się ze sobą: na przykład przez rzutowanie Object na konkretny typ. Czy to też polimorfizm? W końcu pozwala na brzydkie i prymitywne pisanie metod, które działają z różnymi obiektami.
Z reguły warunkiem koniecznym polimorfizmu jest hierarchia klas. Wywołując metodę klasy podrzędnej w zależności od typu wybieramy odpowiednią metodę, dzięki późnemu wiązaniu (np. inaczej wyświetlamy obrazek klasy A, inaczej klasy B, a klasa abstrakcyjna lub nie Obrazek ogólny posiada własne metody, kompletne lub nie, jeśli nie należy je utworzyć w klasach potomnych). Jeśli nie chcemy robić późnego wiązania używamy na metodzie final i wywoła się metoda z klasy nadrzędnej (zabraniamy overridingu).
Co łączy metody nadpisywane w klasach potomnych? Wspólny prototyp (czyli argumenty i zwracana wartość).
Czy moje rozumienie polimorfizmu wydaje się w miarę sensowne z punktu widzenia osób, które rekrutują?
Pozdrawiam!