Наследование — это процесс, при котором один класс наследует свойства другого класса.
Допустим, у нас есть два класса, а именно родительский класс и дочерний класс. Дочерний класс также известен как производный класс. Согласно приведенному выше определению, дочерний класс наследует свойства родительского класса. Основная цель наследования — получить возможность повторного использования кода. Мы можем добиться полиморфизма во время выполнения с помощью наследования. Через несколько минут мы увидим, что такое полиморфизм во время выполнения.
Перейдите по этой ссылке, чтобы узнать, что такое класс и объект.
Предположим, у нас есть класс с именем Laptop, Apple MacBook Pro, Lenovo Yoga. Классы Apple MacBook Pro и Lenovo Yoga расширяют класс ноутбука, чтобы наследовать свойства класса ноутбука.
Мы увидим подробное объяснение с некоторыми примерами программ о наследовании в посте, посвященном наследованию.
В наследовании мы используем два ключевых слова, а именно расширяет и реализует
Расширяет:
Мы используем ключевое слово extends в Java, чтобы позволить дочернему классу наследовать все свойства (члены данных и методы) родительского класса, и в дополнение к ним мы также можем создавать новые элементы данных и методы. Если свойства являются закрытыми, то дочерний класс не может наследовать эти свойства от родительского класса. -o-tab-size:4;-webkit-tab-size:4;tab-size:4;размер шрифта:12px!важно;высота строки:15px!важно>класс ChildClass extends ParentClass {
123 | класс ChildClass расширяет ParentClass{} |
Технически мы говорим, что дочерний класс имеет связь IS-A с родительским классом
123 | класс QA extends Employee{} |
В соответствии с отношением IS-A мы можем сказать QA IS-A Сотрудник
Класс сотрудника:
1234567 | пакет classFourOops.inheritance; public class Employee { String name = “Rajkumar”; |
QA Class:
12345678910111213141516 | package classFourOops. наследование; открытый класс QA extends Employee{String fullName = “Rajkumar SM”;public static void main(String [] args){QA objName = new QA();System.out.println(objName.name);System.out.println( objName.fullName);} } |
В приведенном выше примере объект QA может обращаться как к своим собственным свойствам, так и к свойствам класса Employee.
Реализует:
Мы используем ключевое слово в Java для наследования свойства из интерфейса. Интерфейсы не могут быть расширены классами.
Мы увидим это в разделе Интерфейс.
Типы наследования:
1. Одиночное наследование
2. Многоуровневое наследование
3. Иерархическое наследование
Есть еще два типа наследования: множественное и гибридное наследование, которые поддерживаются только через интерфейс. Мы увидим их в разделе «Интерфейс».
Одиночное наследование:
Одиночное наследование в Java относится к отношениям дочернего и родительского классов. В этом один класс расширяет другой класс, скажем, класс B расширяет класс A
123456789 | package classFourOops. одноместное наследование; public class ClassA { void methodOneClassA(){System.out.println(“Я являюсь первым методом ClassA”);} } |
12345678 | пакет classFourOops.singleInheriance; открытый класс ClassB расширяет ClassA{void methodOneClassB(){System.out.println(“Я являюсь первым методом ClassB”);} |
1234567891011121314151617 | пакет classFourOops.singleInheriance; public class InheritanceTest {public static void main(String args[]){//Класс B расширяет класс A//Здесь я создаю экземпляр ClassBClassB obj = new ClassB();//Используя объект ClassB, я могу вызывать методы из ClassA и ClassB. Это просто потому, что ClassB расширяет ClassAobj.methodOneClassA();obj.methodOneClassB();}} |
Вывод:
12 | Я являюсь первым методом ClassAI я являюсь первым методом ClassB |
Многоуровневое наследование
Многоуровневое наследование в Java относится к отношениям дочернего и родительского классов. В этом классе класс расширяет дочерний класс, например, класс C расширяет класс B, а класс B расширяет класс A
123456789 | package classFourOops.multipleInheriance; public class ClassA { void methodOneClassA(){System.out.println(“Я являюсь первым методом ClassA”);} } |
12345678 | package classFourOops. множественное наследование; открытый класс ClassB extends ClassA{void methodOneClassB(){System.out.println(“Я являюсь первым методом ClassB”);} } |
12345678 | package classFourOops. множественное наследование; открытый класс ClassC extends ClassB{void methodOneClassC(){System.out.println(“Я являюсь первым методом ClassC”);} } |
1234567891011121314151617181920 | пакет classFourOops.multipleInheriance; public class InheritanceTest {public static void main(String args[]){ //Класс B расширяет класс A//Класс C расширяет класс B//Здесь я создаю экземпляр ClassCClassC obj = new ClassC();//Используя объект из ClassC, я могу вызывать методы ClassA, ClassB и ClassC..//Просто потому, что ClassB расширяет ClassA, а ClassC расширяет ClassBobj.methodOneClassA();obj.methodOneClassB();obj.methodOneClassC();}} |
Вывод:
123 | Я — первый метод ClassAI — первый метод ClassBI — первый метод ClassC |
Иерархическое наследование:
Иерархическое наследование в Java относится к отношениям дочернего и родительского классов. В этом случае несколько классов расширяют один и тот же класс, скажем, класс B, класс C расширяет класс A
123456789 | package classFourOops.hierarchialInheriance; public class ClassA { void methodOneClassA(){System.out.println(“Я являюсь первым методом ClassA”);} |
12345678 | package classFourOops. иерархическая наследственность; открытый класс ClassB extends ClassA{void methodOneClassB(){System.out.println(“Я являюсь первым методом ClassB”);} } |
12345678 | пакет classFourOops.hierarchialInheriance; открытый класс ClassC расширяет ClassA{void methodOneClassC(){System.out.println(“Я являюсь первым методом ClassC”);} |
1234567891011121314151617181920 | пакет classFourOops.hierarchialInheriance; public class InheritanceTest {public static void main(String args[]){ //Класс B расширяет класс A//Класс C расширяет класс A//Здесь я создаю экземпляр ClassCClassC obj = new ClassC();//Используя объект ClassC, я могу вызывать методы ClassA и ClassC..//Это просто потому, что ClassC расширяет ClassA//Здесь ClassB не может вызывать методы ClassB, потому что между ClassC и ClassBobj.methodOneClassA();obj.methodOneClassC(); }} |
Вывод:
12 | Я являюсь первым методом ClassAI я являюсь первым методом ClassC |
Множественное наследование
Множественное наследование невозможно в Java. В этом случае дочерний элемент расширяет два родительских класса, например, класс C расширяет класс A и класс B.
Гибридное наследование:
сочетание нескольких типов наследования.
TAG: qa