Видимость свойств и методов может быть определена ключевыми словами: public, protected, private.
- Модификатор public позволяет обращаться к свойствам и методам отовсюду.
- Модификатор protected позволяет обращаться к свойствам и методам только текущего класса и класса, который наследует свойства и методы текущего класса. Другими словами, методы и свойства класса, объявленные через protected будут переданы в классы-наследники.
- Модификатор private позволяет обращаться к свойствам и методам только внутри текущего класса. То есть, помеченный модификатором private элемент объекта может быть использован только в самом объекте и нигде больше.
Это самые главные положения, которые должен знать об области видимости программист на ООП языке. Этими модификаторами управляется сам костяк большого приложения. Общая рекомендация такая - использовать как можно жесткие ограничивающие модификаторы, и переходить на более мягкие только в случае необходимости.
Так же в PHP5 присутсвует ключевое слово final. Оно запрещает перегружать данный метод в классах-наследниках.
Пример:
class Member {
public $username = "";
private $loggedIn = false;
public final function login() {
$this->loggedIn = true;
}
public function logout() {
$this->loggedIn = false;
}
public function isLoggedIn() {
return $this->loggedIn;
}
}
Если кто-то попытается наследовать класс и перегрузить данный метод:
class NaughtyMember extends Member {
public function login() {
$this->loggedIn = true;
// сделать что-то плохое
}
}
… PHP выведет сообщение об ошибке:
Fatal error: Cannot override final method Member::login()
Вы можете также запретить наследование от всего класса с помощью ключевого слова final:
final class Member {
// от этого класса нельзя вообще наследовать
}
Любая попытка создать дочерний класс данного класса, не увенчается успехом:
Fatal error: Class NaughtyMember may not inherit from final class (Member)
Поддержка этих ключевых слов появилась именно в PHP5, в PHP версии 4 возможности помечать методы и классы как неизменяемые не было.
Знаете ли вы, что:
Качественное изготовление и продвижение Интернет-сайта под ключ можно заказать на сайте apsite.in.ua. Компания специализируется на креативном подходе, что обеспечивает уникальность и узнаваемость сайта. |