# Наследование классов и конструкторов
class Basic {
public $a=5;
public function saySomething() {
echo 'Something';
}
}
class Child extends Basic{
public function newFunction() {
echo 'NEW!!!';
}
}
$obj = new Child();
echo $obj->a;
$obj->saySomething();
$obj->newFunction();
Перегрузка методов
class Basic {
public $a=5;
public function saySomething() {
echo 'Something';
}
}
class Child extends Basic{
public function saySomething() {
echo 'Hi!';
}
}
Наследование конструкторов
<?php
class BaseClass {
function __construct() {
print "Конструктор класса BaseClass\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "Конструктор класса SubClass\n";
}
}
class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
?>
Спецификаторы доступа
public - свойства и методы класса доступны как внутри класса через $this, так и за пределами класса через объект
private - свойства и методы класса доступны только внутри класса через $this
protected - свойства и методы класса доступны только внутри класса, а также внутри классов наследников
instanceof
Проверяет является ли объект, объектом заданного класса.
Объект от класса наследника является объектом от базового класса.
Практика:
- От класса прямоугольник создать класс-наследник эллипс
- Реализуем функцию, которая выводит квадраты на экран в произвольных местах. Передаем туда массив эллипсов.
- Задача про магов и рыцарей health, strength, attack