![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem teoretyczny. Jest taka sytuacja
Mam klasę abstrakcyjną Człowiek, która realizuje jakieś opcje. I różni ludzie dziedziczą po tej klasie np:
i chcę aby każdy człowiek posiadał odpowiednie metody(które np ustalają co człowiek potrafi, jak myśli, dla każdego wykonanie tej metody ma być inna). mogę zrealizować to za pomocą interfejsu np. Interface Genetyka
i wtedy będę miał:
ale coś mnie to kole w oczy. Ale mogę dodać metody do klasy abstrakcyjnej skoro i tak każdy człowiek po niej dziedziczy. Co wy byście zrobili. Zastosowali interface czy dodali definicje metod do klasy. Ten post edytował daniel1302 30.11.2011, 17:32:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
To co tu kole w oczy to kompletny brak związku z OOP. Daniel czy inna Ilona nie mogą dziedziczyć po klasie Człowiek, ponieważ te dwa pierwsze to imiona, zaś ostatnie to gatunek. A jak wiadomo imię nie jest wyspecjalizowaną formą gatunku, ani gatunek nie jest uogólnioną formą imienia, racja? Tak więc nie ma tutaj miejsca na jakąkolwiek hierarchiczną zależność pomiędzy tymi rzeczami - nie ma miejsca na dziedziczenie.
Imię to właściwość człowieka. Podobnie sprawa ma się z umiejętnościami. To co dany człowiek potrafi jest jego właściwością, a praktyczniej rzecz biorąc... człowiek posiada kolekcję (zbiór) umiejętności. Z wyglądem sprawa ma się dokładnie tak samo. Tak więc powinieneś skończyć z czymś w stylu:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
To co tu kole w oczy to kompletny brak związku z OOP. Daniel czy inna Ilona nie mogą dziedziczyć po klasie Człowiek, ponieważ te dwa pierwsze to imiona, zaś ostatnie to gatunek. A jak wiadomo imię nie jest wyspecjalizowaną formą gatunku, ani gatunek nie jest uogólnioną formą imienia, racja? Tak więc nie ma tutaj miejsca na jakąkolwiek hierarchiczną zależność pomiędzy tymi rzeczami - nie ma miejsca na dziedziczenie. Imię to właściwość człowieka. Podobnie sprawa ma się z umiejętnościami. To co dany człowiek potrafi jest jego właściwością, a praktyczniej rzecz biorąc... człowiek posiada kolekcję (zbiór) umiejętności. Z wyglądem sprawa ma się dokładnie tak samo. Tak więc powinieneś skończyć z czymś w stylu:
Mnozysz byty ponad miarę. Brzytwa ockhama. Przekombinowujesz. Jezeli czlowiek o imieniu daniel ma specyficzne akcje a czlowiek o imieniu Tania ma inne akcje specyficzne dla siebie to nie widze powodu by nie mogły byc one klasami dziedziczącymi po człowieku. Dodawanie kolejnej klasy przechowującej skile to niepotrzebne utrudnianie sobie zycia. Dodalbym ją wtedy gdy stanie sie potrzebna. W tym kontekscie Daniel/Tania jest typem czlowieka takim samym jak homosapiens czy heterosapiens. Czy Daniel nie jest czlowiekiem? Czy Kamil - obiekt kamil, ten ktory siedzi wlasnie przed laptopem i pisze odpowiedz nie jest czlowiekiem? Jestem imieniem? Natomiast jezeli tworzymy gre simsy gdzie kazdemu mozna nadac wlasne imie i to są te same hipki to oczywiscie imie powinna byc wartoscią. - w tym momencie daniel jest tylko specyficznym obiektem klasy Sim Zapedziles sie crozin. Zapominasz ze kolega nie implementuje w programie rzeczywistosci 1:1 tylko jakis własny wymysł, urojony swiat w ktorym wszystko moze byc wszystkim. Ten post edytował Orzeszekk 30.11.2011, 22:28:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 13:09 |