• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Polimorfizm i interfejsy w JAVA

Object Storage Arubacloud
0 głosów
443 wizyt
pytanie zadane 4 sierpnia 2016 w Java przez itcloud Gaduła (3,380 p.)
Przepraszam, ale mam wrażenie, że wątki "żyją" do góra jednej doby i dwóch odpowiedzi na pytanie przewodnie. Jeszcze potem kilka komentarzy i wątek ginie w natłoku innych, nowych. Dlatego kontynuuję wątek:

http://forum.pasja-informatyki.pl/164293/referencje-do-obiektow-zmienialnych

Ostatnia wypowiedź jednego z kolegów poniżej i moje kolejne wątpliwości w kolejnym poście.

---

Masz rację, rozszerzanie klasy Collar przez Dog nie ma sensu. Ogólnie dziedziczenie nie jest zawsze dobrym rozwiązaniem. Większość książek na początku porusza ten temat żeby przedstawić ogólnie na czym to programowanie obiektowe polega, ale tak na prawdę czasem właśnie chodzi o to żeby uniknąć dziedziczenia. Jeden z rozdziałów książki Effective Java, która jest uznawana za prawdopodobnie najważniejszą książkę dla programistów Javy mówi:
"Favour composition over inheritance" (Preferuj kompozycję ponad dziedziczenie).
Gdzie owa kompozycja to właśnie "zjawisko" gdzie jedna klasa jako pole ma obiekt innej klasy. Kiedyś na pewno poznasz to głębiej i będziesz wiedzieć kiedy jedna klasa powinna dziedziczyć po innej, a kiedy od tego uciekać. (Jakbyś chciał o tym poczytać to warto zacząć od tego czym jest: "Liskov substitution principle", ale wydaje mi się, że na początku nauki języka nie musisz zagłębiać się tak szybko w takie rzeczy.)

Ja javy uczyłem się na początku samu zaczynając przygodę od "Head First - Java". Później pracowałem ze znajomymi w kole naukowym na studiach, co też było (i jest) bardzo fajnym doświadczeniem - więc jeśli znasz kogoś kto też się uczy programować to wspólna praca nad projektem jest super.

Co do indywidualnych projektów - im wcześniej, tym lepiej. Taki just-in-time learning jest bardzo pozytywny. Pisz na co masz ochotę, może być to jakaś prosta gra albo jakaś aplikacja mająca na celu zarządzanie planem dnia / przypominanie Ci o nowych odcinkach serialu / cokolwiek co Ci przyjdzie do głowy :)

Interfejsy można powiedzieć, że głównie służą do definicji typów, też taki polimorfizm tylko "luźniejszy" i bardziej preferowany. Moim zdaniem takie rzeczy najlepiej poznaje się z czasem, wraz z pisaniem kolejnych projektów. Trudno osiągnąć takie pełne zrozumienie z książki :)

1 odpowiedź

0 głosów
odpowiedź 4 sierpnia 2016 przez itcloud Gaduła (3,380 p.)
edycja 4 sierpnia 2016 przez itcloud

>Ja javy uczyłem się na początku samu zaczynając przygodę od "Head First - Java".

Mam polską edycję. Momentami fajne, ale zbyt rozwlekłe i nie podobają mi się te programy, które tam próbuje autor rozkładać na czynniki pierwsze - a wszystko ciągnie się jak flaki z olejem. Poza tym książka mówi o java5 - czyli staroć. Nic dziwnego, że książka jest na allegro wyprzedawana za 50% jej ceny początkowej, bo za moment w ogóle nikt nie będzie tego kupować.

Dla przeciwwagi polecam książkę: JAVA - podstawy. Świetna - są nawiązania do c++. Mowa m.in. o tym, że w javie są interfejsy, a w c++ to klasy abstrakcyjne (metody virtual).

No i kwestia interfejsów. Dotąd na tym forum nikt mi tego nie wytłumaczył w taki sposób, jak tłumaczy ojciec synowi, który wkracza w programowanie (ojcu zależy, żeby syn go zrozumiał). Tutaj na forum często czytam różne watki i fajnie, jak ktoś próbuje coś wytłumaczyć, ale załamuje się, jak widzę sposób, w jaki to robi. Mnóstwo określeń, które ON SAM na tym poziomie co jest, rozumie. Gorzej z tym, komu te informacje przekazuje.

Próbowano mi wytłumaczyć, co to są interfejsy, ale nie wytłumaczono, po co je stosować. Przed momentem natrafiłem na filmik na ytb o wzorcach projektowych. I dopiero chyba po tym filmiku SAM DOSZEDŁEM DO TEGO, po co te interfejsy.

>Interfejsy można powiedzieć, że głównie służą do definicji typów, też taki polimorfizm >tylko "luźniejszy" i bardziej preferowany. Moim zdaniem takie rzeczy najlepiej poznaje się >z czasem, wraz z pisaniem kolejnych projektów. Trudno osiągnąć takie pełne >zrozumienie z książki :)

Sorki :) Ale to mi wiele nie mówi. Domyślam się - choć mogę się mylić - że interfejs buduje się po to, żeby ten kto to zaprojektował mógł tak jakby "podyktować warunki" budowania (implementowania) klasy/klas w oparciu własnie o ten "wzorzec" / szablon. Widziałm w Eclipsie, że gdy koleś podczepiał klasę pod interfejs (implements..) to od razu (tak jak buduje się automatycznie gettery i settery) wyskoczyły mu funkcje/metody. Nie wyłamywał się ponad to, co otrzymał. Nie zastanawiał się, tylko samemu ew. stworzył swoją implementację metod. W sumie tylko cały czas się zastanawiam, po co to, jeśli ktos może poprzez swoją implementację stworzyć potworka. Jeden zrobi tak, jak chciałby aby to wyglądało projektant interfejsu a inny niekoniecznie?

Podobne pytania

+1 głos
3 odpowiedzi 1,056 wizyt
pytanie zadane 3 listopada 2018 w Java przez k222 Nałogowiec (30,150 p.)
0 głosów
2 odpowiedzi 168 wizyt
pytanie zadane 31 marca 2016 w Java przez Ceki Mądrala (5,310 p.)
0 głosów
2 odpowiedzi 326 wizyt
pytanie zadane 2 grudnia 2018 w Java przez itcloud Gaduła (3,380 p.)

92,566 zapytań

141,420 odpowiedzi

319,609 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...