Другое

Наследование в программировании: определение, виды, описание и отличия

Lorem ipsum dolor

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

  • абстракция,

  • инкапсуляция,

  • полиморфизм.

Абстракция — это процесс придания объекту уникальных характеристик, которые выделяют его среди других объектов, подчеркивая его концепцию и основные свойства.

Инкапсуляция — это подход в ООП, который позволяет программисту взаимодействовать с программным компонентом, не задумываясь о том, что у него внутри, а также наладить этому компоненту защиту при помощи публичных методов.

Полиморфизм — это способность объектов с одинаковой спецификой по-разному реализовываться.

Подробнее на каждом принципе мы остановимся в следующих статьях. А сегодня расскажем, что такое наследование в ООП.

Наследование классов в ООП (объектно-ориентированном программировании) 

Наследование в программировании — это возможность описать новый класс объекта на основе уже существующего. При таком подходе наследующий класс «перенимает» специфику родительского класса и использует ее по собственному назначению.

Другими словами, наследование помогает повторно использовать уже написанный код для определенного класса. Использование наследования образует иерархию классов, где присутствуют:

  • родительские или базовые классы — это классы, от которых заимствовали характеристики и свойства;

  • потомственные или наследующие классы — это классы, которые получились на основе характеристик родительских классов.

Наследование может быть 2-х видов:

  • простое,

  • множественное.

Простое наследование классов в программировании

Простое наследование еще называется одиночным — это наследование, при котором создается «родство» между двумя классами. То есть один класс-потомок перенимает характеристики от одного родительского класса.

Даже если от одного родительского класса будет исходить несколько классов-потомков, это все равно будет простым наследованием. Простое наследование поддерживается большинством объектно-ориентированных языков, в отличие от множественного наследования.

Множественное наследование классов в программировании

Множественное наследование классов подразумевает ситуацию, когда один потомственный класс принимает характеристики от нескольких родительских классов. Такой подход помогает реализовывать очень гибкие и настраиваемые классы-потомки.

Его поддерживают не все ОО-языки. Например, множественное наследование поддерживают C, C++, Python, Eiffel, UML, но не поддерживают Java и C#. Некоторые языки отказались от множественного наследования, потому что оно является источником потенциальных ошибок из-за присутствия одинаковых имен у классов. Поэтому в таких языках было решено уйти от множественного наследования и заменить его интерфейсами.

Интерфейс — это подход в программировании, при котором определяются отношения между объектами, связанными похожими характеристиками. Такой подход довольно популярен в объектно-ориентированном программировании, так как исключает многие ошибки, возникающие в других подходах.

Наследование в программировании: реализация в языках

Давайте посмотрим, как реализуется наследование в некоторых языках программирования.

Наследование классов в С/С++ реализуется по следующему шаблону:

class Q {}; // Родительский класс

 

class W : public Q {}; // спецификатор Public

class E : protected Q {}; // спецификатор Protected

class R : private Q {}; // спецификатор Private

 

Как видно, в С/С++ наследование может быть организовано тремя спецификаторами. Данные спецификаторы объявляются в родительском и потомственном классе. Разный спецификатор — разные отношения между этими классами. Данной теме мы посвятим отдельную статью.

Множественное наследование на Python происходит по следующему шаблону:

class FirstParent(object):   # первый родительский класс

    def m1(self): pass

class SecondParent(object):   # второй родительский класс

    def m1(self): pass

class Inheritor(FirstParent, SecondParent):   # Потомственный класс с двумя родительскими

   

В PHP реализация наследования происходит по следующему шаблону:

 

class Inheritor extends Parent {

}

Важная особенность в PHP — родительский класс объявляется после потомственного класса, при этом обязательно использовать перед именем родительского класса ключевое слово «extends».

Заключение

Наследование классов в программировании — это возможность повторно использовать уже написанный код для какого-либо класса. А это существенно экономит время на разработку и отладку программы.

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

Схожие статьи

Другое

Курсы по программированию Майнкрафт для детей: обзор

Уязвимые сайты для атаки SQL и как правильно защищаться
Другое

Уязвимые сайты для атаки SQL и как правильно защищаться

Линукс на Андроид без root-прав: как установить и возможно ли?
Другое

Линукс на Андроид без root-прав: как установить и возможно ли?

Другое

Как создать кейлоггер для личных целей: подробная инструкция