#7.14 php Доступ к методам базового класса
Primary tabs
При использовании наследования может возникнуть необходимость вызова перекрытого метода базового класса. Например, пусть метод set_name в классе Animal описан следующим образом:
function set_name($text)
{
$this->name = $text;
}
Одноименный метод в порожденном классе Lion может вызвать этот метод при помощи префикса Animal::, содержащего имя базового класса. Соответствующее описание выглядит следующим образом:
function set_name($text)
{
Animal::set_name(mp_strtoupper($text));
}
Пример 1 использует этот прием.
Пример 1. Вызов перекрытого метода
<HTML>
<HEAD>
<TITLE>Доступ к методам базового класса</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>
Доступ к методам базового класса
</H1>
<?php
class Animal
{
protected $name;
public function set_name($text)
{
$this->name = $text;
}
public function get_name()
{
return $this->name;
}
}
class Lion extends Animal
{
public function roar()
{
echo $this->name, " рычит! <BR>";
}
public function set_name($text)
{
Animal::set_name(mb_strtoupper($text));
}
}
echo "Создание нового льва...<BR>";
$lion = new Lion();
$lion->set_name("Бонифаций");
echo $lion->roar();
?>
</CENTER>
</BODY>
</HTML>
Результат выполнения примера;
Использование оператора :: позволяет задать имя базового класса непосредственно, но зачастую требуется сослаться на метод непосредственного предка данного класса. Для этой цели в PHP предусмотрено ключевое слово parent, которое может быть использовано вместо имени базового класса. С его использованием вызов метода set_name выглядит следующим образом: parent::set_name($text).
- Log in to post comments
- 1054 reads
vedro-compota
Wed, 09/13/2023 - 19:31
Permalink
необходимость вызова
-- нужна ссылка на ранее разобранный термин "перекрытости", там должен быть пример
_____________
матфак вгу и остальная классика =)