![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, poznałem właśnie jak działają klasy i metody abstrakcyjne i finalne, ale zupełnie nie wiem do czego można by je wykorzystać w praktyce. Czy ktoś mógłby mi przedstawić jakiś prosty przykład, wraz z wytłumaczeniem "z czym to się je"?
Z góry dziękuje za pomoc... PS. Moje początki w obiektówce są dosyć trudne. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
@UDAT - Ze względów praktycznych to Cezar708 moim zdaniem dobrz to wyjaśnił, jeśli jednak chodzi o sama teorię, to logiczne jest, że wszystkie zwerzęta (uściślijmy - ssaki) mają pewien zbiór funkcji, które są wspólne, więc automatycznie podlegaja one dziedziczeniu. Np. zasnij, wydalaj, rozmnazajSie, ustawPlec() itp. Różnią się implementacją i interfejsem szczegółowym (tym który jest użyty bezpośrednio w implementacji)
Gdyby to była aplikacja symulująca zwierzę, to w klasie bazowej zawarłbyś takie składowe jak: stan - np. czuwanie/sen plec -samica/samiec Używając interfejsu (bez dziedziczenia) powielałbyś te składowe w każdej pochodnej, podobnie jak niektóre metody. Skoro zatem tak, czy owak musiałbyś użyć jakiejś klasy bazowej (aby uniknąc tego powielania), to dlaczego od razu nie uprościć sprawy i nie zrobić klasy abstrakcyjnej? Pozdrawiam. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
@UDAT - Ze względów praktycznych to Cezar708 moim zdaniem dobrz to wyjaśnił, jeśli jednak chodzi o sama teorię, to logiczne jest, że wszystkie zwerzęta (uściślijmy - ssaki) mają pewien zbiór funkcji, które są wspólne, więc automatycznie podlegaja one dziedziczeniu. Np. zasnij, wydalaj, rozmnazajSie, ustawPlec() itp. Różnią się implementacją i interfejsem szczegółowym (tym który jest użyty bezpośrednio w implementacji) Gdyby to była aplikacja symulująca zwierzę, to w klasie bazowej zawarłbyś takie składowe jak: stan - np. czuwanie/sen plec -samica/samiec Używając interfejsu (bez dziedziczenia) powielałbyś te składowe w każdej pochodnej, podobnie jak niektóre metody. Skoro zatem tak, czy owak musiałbyś użyć jakiejś klasy bazowej (aby uniknąc tego powielania), to dlaczego od razu nie uprościć sprawy i nie zrobić klasy abstrakcyjnej? Pozdrawiam. Rozumiem różnicę między interfejsem, a klasą abstrakcyjną. Jednak z twojej wypowiedzi zrozumiałem, że "w tym wypadku" oznacza ten konkretny, zaprezentowany przypadek. Później uściśliłeś, że twoja odpowiedź (jak i poprzednika) dotyczyła nie tego konkretnego przypadku, tylko możliwej implementacji hierarchi zwierząt. I w takim przypadku się zgadzam. Jednak w przedstawionym przypdaku - klasa abstrakcyjna z samymi metodami abstrakcyjnymi uważam, że powinno się stosować interfejsy. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 17:12 |