Абстрактные частные функции
В следующем коде PHP будет недоволен тем, что customMethod () является приватным. Почему это так? Видимость определяется тем, где что-то объявлено, а не определено?
Если бы я хотел сделать customMethod видимым только для стандартного кода в классе Template и не допустить его переопределения, я бы просто сделал его защищенным и окончательным?
template.php:
abstract class Template() {
abstract private function customMethod();
public function commonMethod() {
$this->customMethod();
}
}
CustomA.php:
class CustomA extends Template {
private function customMethod() {
blah...
}
}
main.php
...
$object = new CustomA();
$object->commonMethod();
..