Оглавление

Переопределение унаследованных свойств и методов

Чтобы изменить поведение существующего свойства или метода в новом классе, достаточно переопределить его путем повторного объявления в новом классе.


<?php
class MyClass
{
public $prop1 = "Это свойство класса!";
public function __construct()
{
echo 'Класс "', __CLASS__, '" инициирован!<br />';
}
public function __destruct()
{
echo 'Класс "', __CLASS__, '" уничтожен.<br />';
}
public function __toString()
{
echo "Используем метод toString: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
class MyOtherClass extends MyClass
{
public function __construct()                               
{                                                           
echo "Новый конструктор в классе " . __CLASS__ . ".<br />"; 
}                                                            
public function newMethod()
{
echo "Новый метод в классе " . __CLASS__ . ".<br />";
}
}
// Создать новый объект
$newobj = new MyOtherClass; 
 
// Вывести объект в виде строки
echo $newobj->newMethod(); 
 
// Использовать метод родительского класса 
echo $newobj->getProperty(); 
?>

Этот сценарий выведет в браузере следующий результат

 

Новый конструктор в классе MyOtherClass.
Новый метод в классе MyOtherClass.
Это свойство класса!
Класс "MyClass" уничтожен.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити