Помощь в написании студенческих работ
Антистрессовый сервис

Множественное наследование. 
Языки программирования и трансляторы

РефератПомощь в написанииУзнать стоимостьмоей работы

Для решения этой проблемы можно воспользоваться преимуществами, которые дает полиморфизм (Polymorphism), а именно возможностью иметь разные тела у методов с одним и тем же именем, но принадлежащих различным классам в одной иерархии наследования. Класс Инвентарь включает в себя прототип метода printCatalogEntry, который лишь описывает его открытый интерфейс. В этом классе у метода нет тела… Читать ещё >

Множественное наследование. Языки программирования и трансляторы (реферат, курсовая, диплом, контрольная)

Когда некий класс наследует информацию более чем одного базового класса, следует говорить о множественном наследовании. Различные языки программирования и СУБД поддерживают множественное наследование в разной степени.

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

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

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

Для решения этой проблемы можно воспользоваться преимуществами, которые дает полиморфизм (Polymorphism), а именно возможностью иметь разные тела у методов с одним и тем же именем, но принадлежащих различным классам в одной иерархии наследования. Класс Инвентарь включает в себя прототип метода printCatalogEntry, который лишь описывает его открытый интерфейс. В этом классе у метода нет тела, то есть не сказано, какие конкретные действия он должен выполнить (такой метод называется абстрактным). В каждом подклассе он переопределяетсяпишется необходимый код.

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

Показать весь текст
Заполнить форму текущей работой