![]() |
![]() |
![]()
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%) ![]() ![]() |
To, że nie implementuje nie oznacza, że jej metody nie mogą przyjmować instancji obiektów które implementują instrument.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
To, że nie implementuje nie oznacza, że jej metody nie mogą przyjmować instancji obiektów które implementują instrument. Zgłupiałem już: Hmm, nieprecyzyjnie napisałem.
Musi być instancją klas implementujących interfejs Instrument, lub jak ~bela zauważył klas pochodnych do tych klas. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 22:14 |