Наследование (классов) - что это в программировании

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

Смысл наследования

В основе наследования лежит прежде всего иерархичность понятий, осознаваемых человеком, например:

Военная машина -> Танк  -> Российский Танк  ->  Т-72 

Это пример нисходящей иерархии понятий, под которые можно начать программировать классы, например "Боевая машина" может иметь поле "тип" - и это поле наследуют все её "дети" -то есть у Т-72 тоже будет поле "тип".

Кстати, мы можем и разветвить иерархию понятий начианая с определённого уровня - например:

Военная машина -> Танк  -> Американский танк  ->  Абрамс 

Новый функционал у наследников

Классы-наследники могут иметь и дополнительные (свои) функции, но все реализованные функции родителей становятся автоматически доступными в классах-наследниках.

Пример синтаксиса

То что один класс наследуется от другого указывается с помощью специальных слов (или слова), например (язык PHP, пример на Java ищите здесь):

/* базовый класс - от него мы будем наследоваться*/
class Component 
{
	public function Operation1()
	{
		/* просто вернём строку */
		return 'у меня только одна операция!';
	}
}

/* extends - слово с помощью которого "расширяют"
	класс ( наследуются и вводят что-то новое)*/
class ConcreteComponent extends Component
{
	/* у нас уже есть одна операция - давайте определим ещё одну*/
	public function Operation2()
	{
		/*тоже вернём строку */
		return 'У меня две операции!, хотя в коде описана только моя собственная';
	}
}