Wielokrotne dziedziczenie

0

WItam.
Nie wiem jak madrze rozdzielic pomiedzy roznymi poziomami klas(oraz ich modyfikatory).

I poziom - klasa abstrakcyjna - bryła.
II poziom - klasa posrednia - np obrotowa
III poziom - klasy konkretne np prostopadloscian

na I poziomie deklaruje jako abstracty, metody jak pole pow. , obj.
ale mam problem z II poziomem, bo tam juz powinienem zawrzec cialo metod abstrakcyjnych(ale jak mam obliczyc pole, jak bedzie to dedykowane dla III poziomu klasy) ?

Prosze o podpowiedzi, co sie powinno znajdowac na kazdym poziomie, oraz co wazne, z jakim modyfikatorem ?

0

Na obu poziomach pola protected i metody public oraz klasa posrednia tez jest abstrakcyjna, zatem nie musisz juz implementowac tych metod z poziomu I na poziomie II.

0

A co jeśli klasa pośrednicząca nie może być abstrakcyjna?

0
Bryla napisał(a)

A co jeśli klasa pośrednicząca nie może być abstrakcyjna?

Dlaczego nie może?

0

Bo w zadaniu tylko pierwsza jest opisana jako abstrakcyjna

0
Bryla napisał(a)

Bo w zadaniu tylko pierwsza jest opisana jako abstrakcyjna
o oznacz ją w klasie 2 jako virtualną, np zwróć 0, itp

A w klasie 3 zadeklaruj ją jako new.

0

Nie jako new, tylko użyj override :)
mała pomyłka ;p

0

wiec moze lepszym dla ciebie wyjsciem bedzie uzycie interfejsow i dziedziczenia
czy kazda bryla bedzie obrotowa? jesli nie to zrob interfejs IBrylaObrotowa i prostopadloscian bedzie dziedziczyl z klasy bryla i implementowal IBrylaObrotowa
abrstakcyjna klasa bazowa powinna faktycznie zawierac sensowny zbior wpolnych elementow, aby pozniej dalo sie na nich jakos pracowac, a jakies dodatkowe ekstra zachowania uzyskaj przez implementacje interfejsow, zapewni ci to wiesza elastycznosc
oczywiscie jesli sensownie uzyjesz pewnych wzorcow projektowych uzyskasz jeszcze wieksza elastycznos

0
Bryla napisał(a)

A co jeśli klasa pośrednicząca nie może być abstrakcyjna?

Klasa pośrednicząca MUSI być abstrakcyjna. Nie dziedziczymy z klas nieabstrakcyjnych, bo to powoduje same problemy.
W ogóle nie wiem po kiego grzyba robić dla takiego zagadnienia trzy warstwy dziedziczenia. Czym z punktu widzenia programu ma się różnić bryła obrotowa od innej?

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