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

Опубликовано: 2022-06-26

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

Оглавление

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

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

Иерархия наследования обозначает отношения родитель-потомок между различными уровнями наследования. Самый верхний уровень наследования известен как «Суперкласс» или «Родительский класс».

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

Синтаксис наследования Java

class Имя-подкласса расширяет имя-суперкласса

{

//методы и поля

}

Расширенное ключевое слово указывает, что вы создаете новый класс, который наследует все функции своего родителя. Оно означает «увеличивать» или улучшать то, что уже есть.

Пример. В приведенном ниже примере наследования класс Bicycle является базовым классом, класс MountainBike является производным классом, который расширяет класс Bicycle, а класс Test является классом драйвера для запуска программы.

Вход:

// Java-программа для иллюстрации

// концепция наследования

// базовый класс

класс велосипедов {

// класс Bicycle имеет два поля

общественное снаряжение;

общедоступная скорость;

// класс Bicycle имеет один конструктор

общественный велосипед (внутренняя передача, внутренняя скорость)

{

this.gear = шестерня;

это.скорость = скорость;

}

// класс Bicycle имеет три метода

public void applyBrake (целое уменьшение)

{

скорость = декремент;

}

public void speedUp (целое приращение)

{

скорость += приращение;

}

// метод toString() для вывода информации о велосипеде

публичная строка toString()

{

return («Нет шестеренок» + шестеренка + «\n»

+ «скорость велосипеда» + скорость);

}

}

// производный класс

класс MountainBike расширяет Bicycle {

// подкласс MountainBike добавляет еще одно поле

публичный in seatHeight;

// подкласс MountainBike имеет один конструктор

общедоступный MountainBike (внутренняя передача, внутренняя скорость,

интервал startHeight)

{

// вызов конструктора базового класса (велосипеда)

супер(передача, скорость);

высота сиденья = высота начала;

}

// подкласс MountainBike добавляет еще один метод

public void setHeight (int newValue)

{

высота сиденья = новое значение;

}

// переопределение метода toString()

// о велосипеде для вывода дополнительной информации

@Переопределить общедоступную строку toString()

{

return (super.toString() + «\nвысота сиденья»

+ высота сиденья);

}

}

// класс драйвера

открытый класс Тест {

public static void main (String args [])

{

MountainBike mb = новый MountainBike(3, 100, 25);

System.out.println(mb.toString());

}

}

Выход :

Нет передач 3

скорость велосипеда 100

высота сиденья 25

Термины, используемые в наследовании

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

Популярные курсы и статьи по программной инженерии

Популярные программы
Программа Executive PG в разработке программного обеспечения - IIIT B Программа сертификации блокчейна — PURDUE Программа сертификации кибербезопасности - PURDUE MSC в области компьютерных наук - IIIT B
Другие популярные статьи
Зарплата облачного инженера в США в 2021-2022 гг. Заработная плата архитектора решений AWS в США Зарплата бэкенд-разработчика в США Зарплата Front End Developer в США
Заработная плата веб-разработчика в США Вопросы на собеседовании Scrum Master в 2022 году Как начать карьеру в сфере кибербезопасности в 2022 году? Варианты карьеры в США для студентов инженерных специальностей

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

1. Единственное наследование

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

См. пример ниже:

Вход:

// Java-программа для иллюстрации

// концепция одиночного наследования

импортировать java.io.*;

импортировать java.lang.*;

импортировать java.util.*;

первый класс {

публичная пустота print_A()

{

System.out.println («А»);

}

}

второй класс расширяет один {

public void print_for() { System.out.println("for"); }

}

// Класс драйвера

общественный класс Основной {

public static void main (аргументы String [])

{

два g = новые два();

г.print_A();

g.print_for();

g.print_Apple();

}

}

Выход :

А

За

Яблоко

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

Многоуровневое наследование — это то, где существует цепочка наследования. n В Java производный класс не может напрямую обращаться к членам прародителя. Когда у вас есть иерархия наследования, подобная этой, где каждый новый уровень наследуется от другого человека или вещи до них (или наоборот), становится сложно для любого данного объекта в любой группе, потому что они могут использовать только то, что доступно в их собственном соответствующем месте. уровни; поэтому отладка становится более утомительной, чем необходимо!

Вход:

// Java-программа для иллюстрации

// концепция многоуровневого наследования

импортировать java.io.*;

импортировать java.lang.*;

импортировать java.util.*;

первый класс {

публичная пустота print_Inheritance()

{

System.out.println («Наследование»);

}

}

второй класс расширяет один {

public void print_in() { System.out.println("in"); }

}

третий класс расширяет два {

публичная пустота print_Inheritance()

{

System.out.println("Java");

}

}

// Производный класс

общественный класс Основной {

public static void main (аргументы String [])

{

три g = новые три();

g.print_Inheritance();

г.print_in();

g.print_Java();

}

}

Выход :

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

В

Ява

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

Два класса в иерархии могут наследовать друг друга. Например, если и Собака, и Кошка относятся к категории Животных, тогда будет иерархическое наследование, и они будут потомками этого класса.

Вход:

класс животных {

недействительными есть () {System.out.println («есть…»);}

}

класс Dog расширяет Animal{

void bark(){System.out.println("лай...");}

}

класс Cat расширяет Animal {

void meow(){System.out.println("мяуканье...");}

}

класс TestInheritance3 {

public static void main (String args []) {

Кот c=новый кот();

с.мяу();

с.есть();

//c.bark();//CTError

}}

Выход :

мяуканье…

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

4. Множественное наследование (через интерфейсы)

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

Вход:

// Java-программа для иллюстрации

// концепция множественного наследования

импортировать java.io.*;

импортировать java.lang.*;

импортировать java.util.*;

интерфейс один {

общественная недействительность print_eye();

}

интерфейс два {

общедоступная недействительная print_for();

}

интерфейс три расширяет один, два {

общественная недействительность print_eye();

}

дочерний класс реализует три {

@Override public void print_eye()

{

System.out.println("Глаз");

}

public void print_for() { System.out.println("for"); }

}

// Производный класс

общественный класс Основной {

public static void main (аргументы String [])

{

дочерний элемент c = новый дочерний элемент();

c.print_eye();

c.print_for();

c.print_eye();

}

}

Выход :

Глаз

за

Глаз

5. Гибридное наследование (через интерфейсы)

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

Вход

(Ссылка)

Класс A и B расширяет класс C → Иерархическое наследование

Класс D расширяет класс A → одиночное наследование

класс С

{

публичный недействительный дисп ()

{

System.out.println("C");

}

}

класс A расширяет C

{

публичный недействительный дисп ()

{

System.out.println («А»);

}

}

класс B расширяет C

{

публичный недействительный дисп ()

{

System.out.println("B");

}

}

класс D расширяет A

{

публичный недействительный дисп ()

{

System.out.println («D»);

}

public static void main (String args []) {

D obj = новый D();

объект.disp();

}

}

Выход:

Д

Если вы хотите подробно узнать о наследовании в Java и других концепциях ООП, мы рекомендуем программу upGrad Executive PG Program in Software Development от IIIT-Bangalore . 13-месячный курс разработан профессионалами отрасли и преподавателями мирового класса для повышения квалификации в более чем 30 инструментах и ​​​​программном обеспечении. Он включал более 400 часов контента, более 30 отраслевых тематических исследований и проектов, а также более 10 живых сессий, которые помогут вам достичь желаемых результатов; Курс предлагает три специализации, а именно: разработка полного стека, разработка серверной части облака и кибербезопасность.

Забронируйте место в программе уже сегодня!

Каковы четыре типа наследования?

Четыре типа наследования в Java: 1. Иерархическое наследование 2. Гибридное наследование 3. Одиночное наследование 4. Многоуровневое наследование

Объясните полиморфизм в Java.

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

Расскажите о многопоточности в Java.

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