MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
public, protected, private, final в PHP
04.04.2013
19:27
Текстовые метки: php, наследование, класс, class, final, public, private, protected
Раздел: Компьютер - Программирование - Язык PHP

Видимость свойств и методов может быть определена ключевыми словами: 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)


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования