![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przykład z książki:
I teraz mam prosbę o wyjaśnienie 1. Wiadomo, że można tworzyć obiekt gdy definicja klasy występuje w kodzie po utworzeniu obiektu (nie ma konieczności napisania definicji funkcji przed jej wywołaniem). Czy nie wyraźniej (bardziej zrozumiale dla osoby, która przejmuje np. jakiś projekt) byłoby napisać te interfejsy w kolejności: Instrument, Musician, Band ? 2. W definicji interfejsów i klasy (które podałem wyżej) nie rozumię pewnej kwestii i prosiłbym osoby, które dobrze znają OOp o wytłumaczenie: Dlaczego w interfejsie Musician jest public function addInstrument (Instrument $instrument); a nie public function addInstrument ($instrument); ? Podobnie jest w klasie Guitarist - dlaczego zamiast public function addInstrument(Instrument $instrument) nie jest public function addInstrument(Instrument $instrument) ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przyjrzyj się uważnie podanemu przez siebie przykładowi z książki i temu co Ty później napisałeś. Kluczową różnicą jest to, że w przykładzie z książki klasa Guitarist nie implementuje interfejsu Instrument.. nie mniej jej metoda addInstrument() przyjmuje obiekty, które implementują instrument..
To co później napisałeś to coś zupełnie innego - stwierdzenie, że jeśli klasa sama w sobie nie implementuje danego interfejsu to jej metody nie mogą przyjmować obiektów, które implementują dany interfejs co jest z zasady bzdurnym założeniem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 08:23 |