Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: interfejs -> metody prywatne
Forum PHP.pl > Forum > PHP > Object-oriented programming
Apo
Witam
Chciałem się zapytać czy można w jakiś sposób zadeklarować w interfejscie motode prywantą, robie tak:

  1. <?php
  2. interface Aoferty {
  3.  
  4. public function __construct();
  5. private function pokaz();
  6.  
  7. }
  8. ?>


I wywala błędy:
Kod
Fatal error: Access type for interface method Aoferty::pokaz() must be omitted or declared public ...


Jeszcze mam też pytanie czy można w jednej klasie zastosować 2 dziedziczenie, jeśli tak to jak :?

Z góry thx
Pozdrawiam
dr_bonzo
Chyba nie rozumiesz pojecia interfejsu -- za pomoca interfejsu inne obiekty korzystaja z obiektu implementujacaego ten interfejs. Jak wiesz nie beda one mialy dostepu do metod prywatnych tego obiektu, wiec ich sie po prostu nie definiuje w interfejsie --> sa zarbonione.
Apo
Aha, już mniej więcej rozumiem tongue.gif

A wiecie może:
Cytat
Jeszcze mam też pytanie czy można w jednej klasie zastosować 2 dziedziczenie, jeśli tak to jak :?


:?
NuLL
W php nie ma wielodziedziczenia.
Martio
Klasa może dziedziczyć po jednej klasie. Ale można za to implementować wiele interfejsów. I właśnie w ten sposób można osiągnąć w php wielodziedziczenie.
dr_bonzo
Martio: dziedziczenie i implementacja inferfejsu to zupelnie inne sprawy.

Bo w wielodziedziczeniu w C++ dziedziczyles implementacje metod wszystkich klas po ktorych dziedziczyles.
W php (Java i inne) implementacje metod mozesz dziedziczyc TYLKO po jednej klasie, mozesz za to dziedziczyc INTERFEJS, do ktorego musisz dopisac implementacje tych metod.
Neotion
Wielodziedziczenie jest porzucane w nowych językach i trzeba to obchodzić poprzez łańcuszki klas albo jakoś inaczej jeszcze chyba się da ale nie pamiętam...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.