Типы наследования в Java: одиночное, множественное, многоуровневое и гибридное.

Опубликовано: 2021-06-30

Введение

Язык программирования «Java» широко используется при разработке приложений для мобильных устройств, Интернета, настольных компьютеров и т. д. Это надежный, высокоуровневый и объектно-ориентированный язык программирования, разработанный Sun Microsystems в 1995 году. Несмотря на то, что это язык программирования , Java имеет API и среду выполнения (JRE) и поэтому также называется платформой.

В Java есть несколько концепций, из которых четыре основные концепции позволяют овладеть языком. Это абстракция, инкапсуляция, наследование и полиморфизм.

В этой статье мы сосредоточимся на концепции наследования в Java и типах наследования в java .

Что такое наследование?

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

В Java концепция наследования позволяет пользователям создавать классы и использовать свойства существующих классов.

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

  • Класс : он определяется как группа объектов, имеющих общие свойства.
  • Подкласс : также известный как производный или расширенный класс, этот класс наследует функции другого класса. Кроме того, наряду с унаследованными полями и методами класс, сгенерированный из класса, может добавлять собственные поля и методы.
  • Суперкласс: Суперкласс представляет класс , функции которого наследуются подклассом.
  • Возможность повторного использования. Техника повторного использования позволяет пользователю создать класс (новый), имеющий поля или методы уже существующего класса. Это позволяет повторно использовать код.

Важность наследования Java

Реализация наследования в Java дает следующие преимущества:

  • Наследование минимизирует сложность кода, сводя к минимуму повторяющийся код. Если тот же самый код должен использоваться другим классом, он может быть просто унаследован от этого класса его подклассом. Следовательно, код лучше организован.
  • Эффективность выполнения кода увеличивается, поскольку код организован в более простой форме.
  • Наряду с наследованием можно использовать понятие полиморфизма.

Синтаксис

Основной синтаксис

Суперкласс класса {

—————-

}

подкласс класса расширяет суперкласс

{

—————

——————

}

Ключевое слово «расширяет» используется при наследовании класса. Он определяет, что функциональность суперкласса распространяется на подкласс.

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

Рисунок 1. Пример кода, применяющего наследование Java, показан ниже.

Источник

В приведенном выше примере созданы два класса Calculation и My_Calculation. Методы add() и Subtraction() наследуются от класса вычисления в My_Calculation. Расширение ключевого слова использовалось для наследования методов.

Компиляция и выполнение приведенного выше кода дает следующий результат.

Рисунок 2: Вывод кода на рисунке 1

Источник

Создание класса My_Calculation копирует содержимое суперкласса в подкласс. С объектами подкласса пользователи могут получить доступ к члену подкласса.

В некоторых случаях, когда нам нужно провести различие между членами подкласса и членами суперкласса с одинаковыми именами, используется ключевое слово «супер». Если предположительно у нас есть два класса Sub_class и Super_class, имеющие один и тот же метод, т.е. display(). Реализация метода отличается, но имеет то же имя. В таком случае, чтобы отличить суперкласс метода от подкласса, необходимо использовать ключевое слово super.

Типы наследования Java

В Java наблюдаются различные типы наследования:

1. Одноуровневое наследование

Как следует из названия, этот тип наследования происходит только для одного класса. Только один класс является производным от родительского класса. Блок-схема одиночного наследования показана ниже:

Рисунок 3: Графическая иллюстрация одноуровневого наследования

Источник

Два класса Class A и Class B показаны на рисунке 3 , где класс B наследует свойства класса A.

Рис. 4. Пример кода, применяющего одноуровневое наследование

Источник

2. Многоуровневое наследование

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

Рисунок 5: Блок-схема многоуровневого наследования

Источник

Из блок-схемы на рис. 5 видно, что класс B является производным классом от класса A, а класс C является дальнейшим производным от класса B. Таким образом, концепция родительского класса возникает при многоуровневом наследовании. Однако к членам класса прародителя нельзя получить прямой доступ в Java.

Таким образом, на рис. 5 показано, что класс C наследует методы и свойства как класса A, так и класса B.

Ниже показан пример многоуровневого наследования с тремя классами X, Y и Z. Класс Y является производным от класса X, который далее создает класс Z.

Рисунок 6: Пример многоуровневого наследования

Источник

3. Иерархическое наследование

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

Рисунок 7: Графическое представление иерархического наследования.

На рис. 7 мы видим, что три класса — класс B, класс C и класс D — унаследованы от одного класса A. Все дочерние классы имеют один и тот же родительский класс в иерархическом наследовании.

Рисунок 8: Пример кода, демонстрирующий концепцию иерархического наследования

Источник

Приведенный выше код производит вывод

мяуканье…

принимать пищу…

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

4. Множественное наследование

Множественное наследование — это тип наследования, при котором подкласс может наследовать функции более чем одного родительского класса.

Рисунок 9: Представление множественного наследования

Источник

На рис. 4 показано, что класс C является производным от двух классов — класса A и класса B. Другими словами, можно описать, что подкласс C наследует свойства как класса A, так и класса B.

5. Гибридное наследование

Гибридное наследование — это тип наследования, сочетающий одиночное и множественное наследование. Поскольку множественное наследование не поддерживается Java, гибридное наследование также может быть реализовано только через интерфейсы.

Рисунок 10: Представление гибридного наследования

Источник

При наличии различных типов наследования в Java конечной целью является создание подклассов со свойствами, унаследованными от суперклассов. Созданные подклассы имеют различные свойства, а именно:

  • Поля и методы, унаследованные от подкласса, можно использовать напрямую.
  • Новые поля и методы также могут быть объявлены в подклассе, которого нет в суперклассе.
  • В подклассе может быть создан новый метод экземпляра, имеющий ту же сигнатуру, что и метод в суперклассе. Процесс называется переопределением.
  • В подклассе можно создать новый статический метод, имеющий ту же сигнатуру, что и метод в суперклассе. Процесс называется сокрытием.

Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

В статье обсуждалась важная концепция наследования в Java и виды наследования в Java . Таким образом, наследование — это механизм, в котором мы можем повторно использовать коды для приобретения свойств класса в другом классе. Этого можно достичь с помощью различных типов шаблонов наследования, как показано в статье. Однако концепция наследования имеет гораздо большее значение. Чтобы преуспеть в области разработки, требуется владение сложным программированием Java. Если вы мечтаете о создании инновационных интеллектуальных устройств, то лучшим выбором будет программа Executive PG в разработке программного обеспечения с полным стеком, предлагаемая upGrad . Курс, сертифицированный Ливерпульским университетом Джона Мура , совместно с IIIT Bangalore предлагает более 500 часов обучения и предназначен для начинающих профессионалов. Навыки, полученные на курсе upGrad, помогут открыть возможности в области разработки программного обеспечения, веб-разработки, разработчика javascript и т. д. Открытая для любого пола в возрастной группе от 21 до 45 лет, интерактивная программа может быть лучшим выбором для все кодеры.

Что такое наследование?

Наследование — это процесс, посредством которого новый объект приобретает свойства предыдущего объекта. В качестве примера вы можете рассмотреть класс «человек». Может быть много свойств людей, которые вы хотите включить в свой класс, таких как рост, вес и т. д. Таким образом, один из способов сделать это — снова определить все эти свойства в своем классе. Это может быть хорошим способом изучения объектно-ориентированного программирования, но не хорошей практикой. Лучший способ сделать это — наследовать все эти свойства от определенного класса. Класс «дочерний» может наследовать все свойства класса «человеческий» (или «родительский»). В объектно-ориентированном программировании это называется наследованием.

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

Что такое множественное наследование?