Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z protected
Forum PHP.pl > Forum > PHP > Object-oriented programming
Jabol
mam taki kod[php:1:28ea0a47c9]#!/usr/local/bin/php
<?php
abstract class abstr{
protected $name;
abstract function __construct();
protected function name(){
return $this->name;
}
protected function __destruct(){
return;
}
}
class used extends abstr
{
function __construct(){
$this->name="used";
}
}
$test=new used;
print $test->name();
?>[/php:1:28ea0a47c9]Ten kod wywala mi taki blad
Cytat
Fatal error: Call to protected method abstr::name() from context '' in /usr/local/apache/cgi-bin/classtest.php on line 20
Co tu jest nie tak? Z tego co wiem protected oznacza, ze metoda/wlasciwosc jest dziedziczona. Czy moze w php odnosi sie to tylko do wlasciwosci?

PS.
Z tego wynika, ze __construct() wywoluje sie nie tylko przy new klasa(); ale tez przy zwyklych wywolaniach new klasa;
Jabol
a no tak. Jeśli definiuje metode w klasie jako protected, to potem po dziedziczeniu ona nadal jest protected. Musiałbym zdefiniować inną metodę, która tą metodę wywołuje, lub zdefiniować tą matodę jako public w klasie nadrzędnej albo po prostu ją nadpisać w klasie podrzędnej...
php1983
Cytat(Jabol @ 11.05.2003, 10:38:58 ) *
zdefiniować tą matodę jako public w klasie nadrzędnej albo po prostu ją nadpisać w klasie podrzędnej...


a jak chcesz ją zdefiniować jako public i nie nadpisać?
mike
Naprawdę sądzisz, że ~Jabol pięć [sic!] lat czekał na odpowiedź?
Czytaj daty postów.

Zamykam odgrzewanego kotleta.
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.