Hi there! Our project relies on ads or donation to keep the site free to use. Please sending a donation . Thanks!
Подождите, пожалуйста, выполняется поиск в заданном разделе

Основы наследования и полиморфизм в ООП

Основы наследования и полиморфизм в ООП

Принципи спадкування, основні поняття, типи та визначення. Ієрархія об’єктів та спадкування, принципи простій та множної ієрархії, створення, синтаксис. Вимоги до конструкторів та деструкторів ієрархії класів. Передача аргументів в базові конструктори. Заміщення функцій. Похідний клас, клас бінарного дерева.

Віртуальні класи, основні поняття та визначення, приклади розробки віртуальних функцій . Об этом говорит сайт https://intellect.icu . Віртуальні деструктори, приклади програм.

Поліморфізм, основні поняття та визначення. Одиночне та множинне спадкування. Спадкування від базового класу. Віртуальне спадкування. Абстрактні типи даних. Віртуальні функції та класи, приклади програм.

Вкладені класи, доступ до членів, фільтрація доступу, приклади програм. Закрите спадкування. Класи друзі, функції друзі, приклади програм.

Перевантаження операторів, функцій та класів. Перевантаження операторів : унарних, бінарних, присвоювання та індексування. Приклади програм

наследование

Основы наследования и полиморфизм в ООП - портал intellect.icu

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

Класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это возможно обратитися с объектами класса-наследника точно так же, как и с предметами базового класса.

Простое наследование:
Класс, от которого производится наследование, называется базовым или родительским (англ. Базовый класс). Классы, которые выдавали с базового, называют потомками, наследниками или производными классами (англ. Походный класс).

В некоторых языках используются абстрактные классы. Абстрактный класс - это класс, содержит Хоту по одному абстрактным методом, он описывается в программе, имеет поля, методы и не может быть использован для прямого создания объекта. Существует от абстрактного класса можно только Наследова. Объекты создаются только на основе производственных классов, наследованих от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вузы», от которого следуют классы «аспирант», «профессор» и т. Д. Так как производственные классы имеют общие поля и функции (например, поле «год рожд»), поэтому эти члены класса могут быть описаны в базовом классе. В программе создаются объекты на основе класса «аспирант», «профессор», но не существует создания созданных объектов на основе класса «сотрудник вузы».

Множественное наследование
При множественном наследовании в классе может быть больше одного предка. В этом случае класс наследуемо методы всех предков. Достоинство такого подхода в большей гибкости. Многолетнее подражания реализовано в C ++. Из других языков, предлагая эту возможность, можно видметиты Python и Эйфель. Багатожитлове наследування поддерживает в языке UML.

Множественное наследование - потенциальный источник ошибок, которые могут подняться из-за наличия одинаковых именных методов в предках. В языках, которые позиционируют как наследники C ++ (Java, C # и др.), От многих других наследий было решено отказаться от использования интерфейсов. Практически всегда можно обойтись без использования данного механизма. Однако, если таковая необходима, то все-таки возможно, чтобы решить конфликты, используя наследовани методы с одинаковыми именами быть, например, заменить операцию расширения видимости - «::» - для вывода конкретного метода конкретного родителя.

Попытка решения проблем имеющихся одинаковых именных методов в предыдущих была подготовлена ​​на языке Эйфель, в котором в описании нового класса нужно явно войти импортруваних членов каждого из наследуваних классов и их имени в дочерних классе.

Большинство современных объектно-ориентированных языковых программ (C #, Java, Delphi и др.) Поддерживают возможность одновременно наследоваться от класса-предка и реализовать методы неоднократных интерфейсов одних и темных классов. Этот механизм способен во многих изменениях множественного наследования - методов интерфейсов, необходимых переопределить явно, что исключает ошибки при наследовании функциональных одинаковых методов различных классов-предков.

полиморфизм

Основы наследования и полиморфизм в ООП - портал intellect.icu
Полиморфизм - возможность объектов с одинаковой спецификацией иметь различную реализацию.

Язык программной поддержки поддерживает полиморфизм, если класс с одинаковой спецификацией могут иметь различную реализацию - например, реализация класса может быть изменена в процессе работы [1].

Краткое содержание полиморфизма можно выразить фразой: «Один интерфейс, большая реализация».

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

Полиморфизм позволяет писать более абстрактные программы и увеличивать кофефициент повторного использования кода. Общие свойства объектов объединяются в системе, которую можно назвать по-разному - интерфейс, класс. Определение имеет внешнее и внутреннее выражение:

внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигналами (именометрии и типы аргументов и их количество);
внутренняя общность - одинакова функциональность методов. Можно описать интуитивное или выразить в суровых законах, правилах, которые должны обязательно подписать методы. Функция функционирование одного метода (функции, операции) называет перегрузкой метода (перегрузкой функций, перегрузка операций).
Формы полиморфизма
Используя параметрический полиморфизм можно создать универсальные базовые типы. В случае параметрического полиморфизма функция реализуется для всех типичных одинаковых и таких функций, реализуемых для производственного типа. В параметрическом полиморфизме рассматриваются параметрические методы и типы.

Параметрические типы.

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

Полиморфизм переопределения.

Абстрактные методы часто относятся к отложенным методам. Класс, в котором определен этот метод может вызвать метод и полиморфизм обеспечивает вызов подходящей версии отложенного метода в дочерних классах. Специальный полиморфизм допускает специальную реализацию для данных каждого типа.

Полиморфизм-перегрузка

Полиморфизм-перегрузка - это частный случай полиморфизма. С помощью xtik.

подробнее на сайте https://intellect.icu/osnovy-nasledovaniya-i-polimorfizm-v-oop-88

Комментарии (1)

avatar
Admin 22.3.2020 13:31

чтобы еще лучше понять смысл классов интерфейсов и вообще ООП, рекомендуем прочитать UML диаграммы классов
https://intellect.icu/diagramma-klassov-class-diagram-4825

Отношения классов в UML
https://intellect.icu/otnosheniya-klassov-v-uml-4301


avatar

Чтобы оставить комментарий войдите или зарегистрируйтесь



Объектно-ориентированное программирование