![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Buduje aplikację gdzie mam klasy które dziedzicza po sobie kilkakrotnie np. pojazd->samochod->sedan. Jak mogę wywołać jakąś metodę z najwyższego rodzica tzn z poziomu klasy sedan wywołać metodę w klasie pojazd, która na każdym poziomie dziedziczenia była nadpisywana? Gdy wpisuje paren::metoda() to wywołuje mi tylko metodę z drugiego poziomu czyli w tym przykładzie z klasy samochod. Ten post edytował czarek1986 17.06.2010, 19:25:12 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie korzystałem z czegoś takiego, ale strzelam, że:
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie tak na pewno nie bo też tak myślałem ale niestety wywala się błąd przy takim zapisie
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ciekawe zagadnienie, możesz spróbować tak:
[za:] http://stackoverflow.com/questions/1557608...nts-constructor -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
możesz także skorzystać z reflection api: http://www.php.net/manual/en/reflectioncla...parentclass.php
-------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Moim zdaniem rozwiązanie problemu jest jedno: napisać wspomniane klasy poprawnie. Opisywany problem świadczy jednoznacznie, że coś tu jest nie tak.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No tak, ale to pod warunkiem, że metoda jest STATYCZNA.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mylisz się
![]() -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Jeżeli nie ma tej metody w klasie samochód to ją wywołasz normalnie poprzez $this, jeżeli jest to możesz parentem, ale możesz też $thisem, kto Ci broni, poza tym parent:: nie jest rozwiązaniem bolączek. Dla mnie to parent:: został napisany dla konstruktórów i destruktórów. albo po to by rozjaśnić OOP w php gdyż te jest nielogiczne. W ciele klasy matki można wywoływać metody z klasy rodzica, gdyż metody są dopisywane do obiektu a nie do klas. Ja pierdziele, paranoja.
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@cojack
nie bardzo wiem o co Ci chodzi ![]() " ale możesz też $thisem, kto Ci broni" ![]() "Dla mnie to parent:: został napisany dla konstruktórów i destruktórów" przeciez odpowiednik tego sposobu odwolania sie do metody rodzica jest chyba w kazdym jezyku obiektowym i obiektowatym "W ciele klasy matki można wywoływać metody z klasy rodzica, gdyż metody są dopisywane do obiektu a nie do klas." przyznam ze nie wiem jak technicznie jest to rozwiazane, wydaje mi sie ze nie masz racji, ale nawet jesli to nie wiem co ma piernik ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Tak się po prostu użalam nad OOP w php, a jeżeli metoda z dziadka została przysłonięta przez rodzica, to nie widzę sensu by wywoływać metody z dziadka bezpośrednio z dziecka. Wywołaj metodę rodzica a w niej wywołaj metodę rodzica tego rodzica.
No nic spektakularnie trudnego. -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak się po prostu użalam nad OOP w php ale nad czym konkretnie, wydaje mi sie ze nie ma juz za bardzo na co narzekac ![]() a jeżeli metoda z dziadka została przysłonięta przez rodzica, to nie widzę sensu by wywoływać metody z dziadka bezpośrednio z dziecka. czasami taka potrzeba sie pojawia ![]() ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
@-=Peter=- dał dobrą odpowiedź, temat do zamknięcia ;]
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 07:14 |