Преглед на наследството в Java

За разлика от други езици за програмиране като C, Java предлага механизъм, чрез който членовете на данните и методите от един клас се наследяват от друг клас. Този процес е известен като Наследяване в Java. За да се наследява от клас, се използва ключовата дума 'extends'. Наследяването в Java позволява повторно използване на код, така че клас трябва да напише само уникалните функции, а останалата част от кода може да бъде разширена от другия клас. Класът, който наследява от другия клас, е известен като подклас или детски клас, а класът, който се наследява, е известен като родителски клас или суперклас. Синтаксис, типове и изпълнение на наследяването ще бъдат разгледани в следващите раздели.

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

Наследяването означава IS-A връзка, която иначе е известна като връзка родител-дете. Родителят и детето вече са споменати в уводната част.

Преди да преминем към видовете Наследяване в java, първо, нека да видим синтаксиса на Наследяването.

Синтаксис:

class apple extends fruit
(
//methods and fields
)

Тук ябълката е подкласът, а плодът е родителският клас. Това означава, че ябълката има определени уникални свойства и също така има свойствата на плода.

В Java има 4 различни вида Наследяване.

  • Единично наследяване
  • Наследяване на много нива
  • Йерархично наследяване
  • Множество наследяване (с помощта на интерфейси)

Сега, нека да видим всеки от тях подробно.

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

Клас, който разширява само един клас. В следващия пример класната ябълка разширява класа плодове.

т.е. Fruit е суперкласът, а Apple е подкласът, който разширява свойствата и поведението на Fruit class.

Следва демонстрация на единично Наследяване в 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. Наследяване на много нива

При този тип наследяване клас ще бъде разширен от друг клас и производният клас действа като основен клас за някой друг клас.

Например, на фигурата, клас четириколесен клас е родителският клас, а автомобилът е производен клас на четириколесен клас. В същото време класният автомобил може да бъде базов клас за клас Марути.

Код:

//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 заедно със синтаксис, примери и реализация на код. Можете също да разгледате следните статии, за да научите повече-

  1. JScrollPane на Java
  2. Сесии в PHP
  3. Сортиране в Java
  4. Какво е Java Garbage Collector?
  5. Инструменти за разполагане на Java
  6. По-важно в Java
  7. Наследяване в PHP