![]() |
![]() |
![]()
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:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 10:02 |