Обзор наследования в Java
В отличие от других языков программирования, таких как C, Java предлагает механизм, с помощью которого члены данных и методы одного класса наследуются другим классом. Этот процесс известен как наследование в Java. Для наследования от класса используется ключевое слово extends. Наследование в Java позволяет повторно использовать код, так что классу нужно только написать уникальные функции, а остальная часть кода может быть расширена из другого класса. Класс, который наследуется от другого класса, известен как подкласс или дочерний класс, а наследуемый класс известен как родительский класс или суперкласс. Синтаксис, типы и реализация наследования будут обсуждаться в следующих разделах.
Типы наследования в Java
Наследование означает отношения IS-A, которые иначе называются отношениями родитель-ребенок. Родитель и ребенок уже упомянуты во вводной части.
Прежде чем перейти к типам Наследования в java, сначала давайте рассмотрим синтаксис Наследования.
Синтаксис:
class apple extends fruit
(
//methods and fields
)
Здесь яблоко - это подкласс, а фрукты - родительский класс. Это означает, что у яблока есть определенные уникальные свойства, а также у фруктов.
В Java существует 4 различных типа наследования.
- Одиночное наследование
- Многоуровневое наследование
- Иерархическое наследование
- Множественное наследование (с помощью интерфейсов)
Теперь давайте рассмотрим каждый из них в деталях.
1. Одиночное наследование
Класс, который расширяет только один класс. В следующем примере класс apple расширяет класс фруктов.
т.е. Fruit - это суперкласс, а Apple - это подкласс, который расширяет свойства и поведение класса Fruit.
Ниже приведена демонстрация одиночного наследования в Java.
Код:
//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)
Выход:
2. Многоуровневое наследование
В этом типе наследования класс будет расширен от другого класса, а производный класс будет действовать как базовый класс для некоторого другого класса.
Например, на рисунке класс четырехколесных транспортных средств является родительским классом, а автомобиль - производным классом четырехколесных транспортных средств. В то же время, автомобиль класса может быть базовым классом для класса Maruti.
Код:
//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)
Выход:
3. Иерархическое наследование
В иерархическом наследовании базовый класс имеет более одного дочернего класса, что означает, что свойства класса приобретаются разными классами.
Например, у автомобиля класса есть подклассы: автомобили, велосипеды, мотороллеры.
Код:
//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)
Выход:
4. Множественное наследование
Множественное наследование в Java - это тип наследования, в котором класс имеет более одного родительского класса.
Например, класс C приобретает свойства как класса A, так и класса B.
Но в Java множественное наследование может быть достигнуто только с помощью интерфейсов.
Предположим, что множественное наследование реализовано подобно другим типам наследования, ошибка времени компиляции может произойти следующим образом.
Код:
//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)
Здесь вывод не будет отображаться, так как содержит ошибку времени компиляции.
Важность наследования в Java
- Повторное использование кода: Наследование помогает сократить переписывание кода. т.е. код может быть повторно использован другими классами, и дочерний класс должен только написать свои собственные уникальные свойства. Это уменьшает потребление времени и сложность кода.
- Для переопределения метода: метод, который уже присутствует в родительском классе, объявляется дочерним классом, тогда он называется переопределением метода.
Синтаксис:
final class A
(
. . .
)
Class B extends A
(
. . .
)
В этом случае будет сгенерирована ошибка, которая говорит: «Невозможно наследовать от конечного A».
Вывод
Наследование в Java - это свойство, с помощью которого свойства и поведение класса приобретаются другим классом для обеспечения возможности повторного использования кода. В Java существуют различные типы наследования, такие как одиночное наследование, многоуровневое наследование, иерархическое наследование и множественное наследование в Java. В этом документе рассматриваются несколько важных аспектов наследования.
Рекомендуемые статьи
Это руководство по наследованию в Java. Здесь мы обсуждаем важность и различные типы наследования в Java, а также синтаксис, примеры и реализацию кода. Вы также можете посмотреть следующие статьи, чтобы узнать больше
- JScrollPane в Java
- Сессии в PHP
- Сортировка в Java
- Что такое Java сборщик мусора?
- Инструменты развертывания Java
- Переопределение в Java
- Наследование в PHP