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