наследование классов простым языком за 2 минуты

Не секрет, что на собеседованиях уже и на должность обычного php-разработчика можно частенько услышать вопросы про принципы ООП (Объектно-ориентированное программирование). Предлагаю разобраться с одним из них на простом примере.

По-сути, наследование - это практический номинализм в философии.

Допустим, что вы — Василий или Ираклий. Вроде ничего необычного, но если переложить столь простую интенцию на php-код, получиться, что вам (из обычной социальной традиции наименований) соответствует более общая группа «мужчины», которой соответствует еще более общая группа «люди».

Итого, мы получили:

«люди» — «мужчины» — «Василий»

И тоже самое в виде кода:

Прежде нужен класс самой общей группы.

class People {

/* у всех людей есть руки */
public function hands(){
...
}

/* и голова */
public function head(){
...
}

/* end class people */
}

в наследованном классе (производным от «людей») нам нужно добавить что-нибудь чисто мужское ( см. extends )

class Mans extends People {

/* борода обычно встречается только у мужчин */
public function beard(){
...
}

/* end class man */
}
тут открывается главная цель наследования — заимствование методов и переменных родительского класса.
всем мужчинам доступны руки и голова класса "люди"

и, наконец, мы добавляем Вас

class Vasiliy extends Mans {

/* а вот мысли только Ваши */
public function Thought(){
...
}

/* end class vasiliy */
}
теперь остается вызвать Вас к жизни
$vasiliy = new Vasiliy();
и воспользоваться родительскими методами, которые достались !по-наследству! от папы "мужчины" и дедушки "люди" :)
$vasiliy->beard();
$vasiliy->hands();

Важно помнить! При наследовании методы и переменные могут иметь разную степень видимости. Что бы далеко не углубляться — public, protected и private. Из названия обычно ясно, что есть что. Но, конечно, лучше поэксперементировать.

Удачного кода!