PHP-Code:
<?php
abstract class A {
protected abstract function func();
}
class Decorator extends A {
private $_decorated;
public function __construct(A $a) {
$this -> _decorated = $a;
}
protected function func() {
$this -> _decorated -> func();
}
public function doCall() {
$this -> func();
}
}
class ASmall extends A {
protected function func() {
printf("%s::%s called!\n",__CLASS__,__FUNCTION__);
}
}
$a = new ASmall();
$dec = new Decorator($a);
$dec -> doCall();
?>
Code:
"ASmall::func called!"
Code:
Fatal error: call to protected ... in context "Decorator".
Kommentar