Polimorfizm z czym sie to je?

0

Witam

Ucze sie javy namietnie i zatrzymałem sie na polimorfizmie wiec co to oznacza moze ktos podac jakies praktyczne zastosowanie tego polimorfizmu?

2

daj sobie spokój jak nie umiesz korzystać z internetu wyszukać nawet tak prostej rzeczy. 1000x było

0

Dzieki, poza tym Karolina swoja rade możesz wsadzic sobie w buty. Ja nie z tych co sie szybko poddaja ;P

1

żeby wiedzieć co to polimorfizm, przede wszystkim musisz rozumieć co to obiekt i rozszerzanie obiektu o obiekt
przykładowa sytuacja: jest gra, chcesz mieć 3 graczy: NiskiGracz, SredniGracz, WysokiGracz i wszystkich trzymac w jednej liście która np. oznacza drużyne

Jeśli przerabiałeś już temat, to wiesz, że List to interfejs generyczny. Co to znaczy? że miedzy strzałkami <> musisz(wlasciwie to możesz, ale przyjmijmy ze musisz) podać typ, jaki ta lista bedzie trzymała.
Schemat:

abstract class Gracz{
String imie;
String nazwisko;
}

class NiskiGracz extends Gracz{}

class SredniGracz extends Gracz{}

class WysokiGracz extends Gracz{}

I teraz chcesz w jakiejś tam klasie mieć liste graczy. Gdybyś nie miał tej abstrakcyjnej klasy nadrzędnej Gracz nie miałbyś jak tam wrzucic 3 różnych obiektów. A tym czasem robisz liste typu Gracz i możesz wrzucac do niej kazdy obiekt ktory rozszerza klase Gracz

To samo tyczy sie deklaracji obiektu, chcac stworzyc obiekt typu NiskiGracz możesz to zrobic tak:

NiskiGracz ng = new NiskiGracz();

lub tak

Gracz g = new NiskiGracz();

Trzeba po prostu popisać, odpalić tutorial i załapiesz, choć zajmuje to chwile. To co dałem wyżej to właściwie taki shortcut, ale myśle, że dość jasny

no i przede wszystkim: **programując MUSISZ szukać informacji w google, może ci się wydawać, że twoj problem jest unsolvable, ale szczególnie na początku: na pewno znajdziesz odpowiedz w google, szukaj tam bo w 80% na tym sie opiera kodowanie **

1

Praktycznym zastosowaniem polimorfizmu może być np. wyliczanie ryzyka instrumentów finansowych. Dla różnych grup instrumentów (akcje, obligacje, surowce itd.) robi się to w trochę inny sposób. Można sobie stworzyć wtedy szablonowy kalkulator, który będzie klasą abstrakcyjną i dla poszczególnych grup zaimplementować już szczegóły, którymi się różni wyliczanka.

0

Jest podobne pytanie na stackoverflow: http://stackoverflow.com/questions/1031273/what-is-polymorphism-what-is-it-for-and-how-is-it-used
ma 141 punktów i zostało zadane przez gościa, który ma reputation score 7.7k(top 5%). Jak widać nie każdy musi się znać na wszystkim i nie każde pytanie ma oczywistą odpowiedź dla każego.

Ale ogólnie googlować warto ;)

1

@Wielki Szczur nie bądź śmieszny. Score na stacku nabija się poprzez odpowiadanie na proste pytania z popularnych działów. Wynik nie ma nic wspólnego z czyjąś wiedzą. Był kiedyś ciekawy wypis na blogu, ale nie mam linka pod ręką, gdzie gość opisywał jak wystukał sobie jakiś mega wysoki wynik na odpowiadaniu na temat Javy, a sam w ogóle tego języka nie znał... ;]

edit: mam http://michael.richter.name/blogs/why-i-no-longer-contribute-to-stackoverflow

0

@Shalom to zabawne, że jesteś moderatorem masz #2 score na tej stronie a jednocześnie negujesz system stackoverflow z grubsza podobny do 4Programmers ;)

Nie pisałem tylko o reputacji pytającego ale także o ocenach samego pytania które miało 141pkt. Też można to zdyskredytować ale już nie tak łatwo.

Z linka wynika, że jednak znał jave ale nie za bardzo lubił.
Znalazłem jego przypadkową odpowiedź: http://stackoverflow.com/questions/2387218/what-does-this-line-of-code-do/2387232#2387232 nie jest zła ale nic nowego wnosi za to dostała 92 pkt. W porównaniu z pytaniem, które ma 1pkt to przepaść. Więc problem z tym systemem jest i tu się z Tobą zgodzę :) na pewno brakuje powiązania pomiędzy punktami za pytanie i odpowiedź.

0

@Wielki Szczur, żeby zrozumieć jak działa system punktowy na SO czy 4p należy poznać troszeczkę psychologię i sposób zachowania użytkowników. W dużym skrócie użytkownicy o wyższych "rangach" są wybierani jako bardziej zaufani i zaczyna działać efekt kuli śniegowej. Najlepszym przykładem jest moja reputacja na devpytania.pl gdzie nie jestem aktywny już od dawien dawna, a jednak utrzymuję się na powierzchni.
Różnica pomiędzy 4p i SO leży w sposobie oceny odpowiedzi. SO jest jednak serwisem, w którym ocena silnie zależy od kolejności w jakiej się odpowiedziało. Rzadko późniejsze odpowiedzi zdobywają dużo ocen pozytywnych. Inna jest też filozofia związana z linkowaniem do tematów powtarzających się czy nie mających powiązania z głównym założeniem SO. Na 4p reguły są luźniejsze.

Dla tego mam prośbę koniec offtopu :)

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