Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%)
|
Witam,
mam taki kod:
Wszystko jest ok aż do ostatniej linijki kodu - echo $Node->Hello(); Wynik skryptu: Hello! World. test1 Fatal error: Call to undefined method DOMElement::Hello() in D:\WebServ\httpd-users\test\index.php on line 17 Czy istnieje jakieś rozwiązanie aby obiekt $Node = new MyClass() po przypisaniu $NodeList->item(0); był nadal obiektem klasy MyClass? (IMG:style_emoticons/default/questionmark.gif) ? Przez to cała robota mi stanęła...proszę o pomoc (IMG:style_emoticons/default/smile.gif) Ten post edytował morris4life 30.11.2009, 11:31:00 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
morris4life -> to, że sobie rozszerzysz jakąś klasę, nie znaczy, że wszystkie jej obiekty automatycznie stają się od razu dziećmi tej klasy. I nawiasem mówiąc, gdzie tu masz jakiś polimorfizm?
Kod class a { /* jakiś kod */ } class b extends a { /* jakiś kod */ public method foo(){ } } $foo = new b; // obiekt klasy B dziedziczącej po A $foo->foo(); // zadziała, bo to obiekt klasy B $bar = new a; // obiekt klasy A $bar->foo(); // nie zadziała, bo to obiekt klasy A Jeśli DOMDocument tworzy obiekty DOMNode, to są to obiekty DOMNode i koniec, kropka, a nie żadne MyClass. Na koniec zagwozdka dla Twojego sposobu myślenia: Kod class ClassA extends DOMNode { } class ClassB extends DOMNode { } // i niby czym teraz miałyby być Twoje obiekty, gdyby było prawdą to, co piszesz? Natomiast sytuacja, o której piszesz w Delphi jest karygodna! Jeśli stworzyłeś jakiś obiekt WYŁĄCZNIE jako obiekt klasy A, to NIE WOLNO go używać jako obiektu klasy B, nawet jeśli ona dziedziczy po A! A co, gdyby klasa B miała jakieś dodatkowe pola? Z obiektem wiąże się przecież pewien obszar pamięci. Na obiekty klasy A przewidziane jest 50 bajtów, na obiekty B - 80 bajtów. Teraz rzutujesz obiekt klasy A na "B", odwołujesz się do dodatkowego pola i co? Wychodzisz poza pamięć przyznaną obiektowi... gratulacje. Ten post edytował Zyx 30.11.2009, 12:03:58 |
|
|
|
morris4life Polimorfizm 30.11.2009, 11:30:36
nospor Chyba nie czaisz jak działa dziedzicznie.
class M... 30.11.2009, 11:35:41
morris4life nospor
"Gdyż $node to obiekt klasy DOM i... 30.11.2009, 11:48:02
nospor Cytatnospor
"Gdyż $node to obiekt klasy ... 30.11.2009, 11:51:09
morris4life ok nie zrozumiałem .. zwracam honor
czyli nie da... 30.11.2009, 11:57:33
morris4life przecież jeżeli:
[PHP] pobierz, plaintext class My... 30.11.2009, 12:10:42
phpion Konstruktory dziedziczą się samoczynnie. Deklaruje... 30.11.2009, 12:18:17
morris4life Cytat(Zyx @ 30.11.2009, 12:00:01 ) Na... 30.11.2009, 12:26:37
darko Cytatczy jest jakiś sposób aby przypisać właściwoś... 30.11.2009, 12:29:54
morris4life Cytat(darko @ 30.11.2009, 12:29:54 ) ... 30.11.2009, 12:37:36
darko Nie wiem czy dobrze Cię rozumiem: używasz kompozyc... 30.11.2009, 12:41:50
morris4life Cytat(darko @ 30.11.2009, 12:41:50 ) ... 30.11.2009, 12:47:05 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 19:55 |