Tipi di eredità in Java | Spiegato

Tipi di eredità in Java | Spiegato
Uno dei concetti chiave della programmazione Java orientata agli oggetti è Eredità che consente a una classe di acquisire gli attributi di classe e le funzioni dei membri delle altre classi utilizzando una parola chiave si estende. In Java, ci sono diversi tipi di eredità come singolo, multilivello e gerarchico che possono essere utilizzati in base a circostanze diverse. A differenza di altri linguaggi di programmazione come C ++, Java non supporta il concetto di eredità multipla per evitare l'ambiguità.

Questo articolo fornisce una panoramica dettagliata dei seguenti concetti relativi ai tipi di eredità in Java:

  • Singola eredità in Java
  • Eredità gerarchica in Java
  • Ereditarietà multilivello in Java
  • Sintassi di base di eredità singola, multilivello e gerarchica in Java
  • Come usare l'eredità singola, multilivello e gerarchica in Java

Quindi iniziamo!

Singola eredità

Nel caso della singola eredità, esistono solo una classe genitore e una classe figlio e la classe figlio possono accedere agli attributi e alle funzioni della classe della classe genitore. Dobbiamo prenderci cura degli attributi di classe e dei metodi di classe in modo che non ci sia un conflitto tra membri dei genitori e di classe figlio.

Sintassi

La sintassi di base della singola eredità sarà così:

Parente di classe pubblica
// Attributi di classe
// funzioni del membro

Public Class Child estende il genitore
// Attributi di classe
// funzioni del membro

IL si estende la parola chiave indica che le proprietà di Classe genitore sono ereditati al Classe per bambini.

La figura di seguito offrita fornirà una migliore comprensione della singola eredità:

Ci sono solo due classi:

Classe per bambini: può ereditare tutti gli attributi e i metodi del Classe genitore E non ha la sottoclasse.

Classe genitore: è una superclasse ereditata da Classe per bambini.

Esempio

Nel frammento di codice di seguito donati, creiamo tre classi: a Persona classe estesa da Alunno classe e un “Javainheritance"Classe in cui creiamo il principale metodo:

persona di classe
protetto int personaggio = 25;
String String Protected PersonName = "John";
public void display ()
Sistema.fuori.println ("questa è la classe persona");


Lo studente di classe estende la persona
protetto int rollno = 13;

Classe pubblica JavainHeritance
public static void main (string [] args)
Student std = new Student ();
std.Schermo();
Sistema.fuori.println ("Roll per studenti no. = " + std.rollno);
Sistema.fuori.println ("Student name =" + std.personale personale);
Sistema.fuori.println ("studente age =" + std.personaggio);

La figura seguente mostra il codice completo insieme al suo output:

Nella figura sopra, un metodo della classe di persona viene chiamato con l'oggetto della classe studentesca e l'output mostra che funziona correttamente.

Ereditarietà gerarchica

Più classi possono essere estese da una classe nell'eredità gerarchica i.e. Un genitore può avere più classi di figli.

La sintassi di base dell'eredità gerarchica è mostrata nello snippet di seguito

Parente di classe pubblica
// Attributi di classe
// funzioni del membro

Public Class Child1 estende il genitore
// Attributi di classe
// funzioni del membro

Public Class Child2 estende il genitore
// Attributi di classe
// funzioni del membro

Lo snippet sopra dato mostra che entrambe le classi derivate i.e. Child1 E Child2 può ereditare le proprietà del Genitore classe.

La figura seguente mostra il flusso di eredità gerarchica:

Esempio

persona di classe
String String Protected PersonName = "John";

Lo studente di classe estende la persona
protetto int rollno = 13;

Il dipendente di classe estende la persona
protetto int empid = 2;

Classe pubblica JavainHeritance
public static void main (string [] args)
Student std = new Student ();
Sistema.fuori.println ("Roll per studenti no. = " + std.rollno);
Sistema.fuori.println ("Student name =" + std.personale personale);
Emp Emp = new Employee ();
Sistema.fuori.println ("dipendente id =" + emp.empid);
Sistema.fuori.println ("name dipendente =" + emp.personale personale);

Dallo snippet sopra, possiamo osservare che entrambi Dipendente E Alunno Le lezioni sono ereditate dal Persona Classe. Quindi, in primo luogo, dobbiamo creare gli oggetti di entrambe le classi individualmente, quindi è possibile accedere ai loro rispettivi attributi tramite i loro oggetti.

Il codice completo e l'output risultante sono mostrati nella figura seguente:

Lo screenshot sopra mostra che entrambe le classi accedevano agli attributi del Persona Classe che autentica il funzionamento dell'eredità gerarchica.

Ereditarietà multilivello

Nell'eredità multilivello, l'eredità viene eseguita sulla base di livello, i.e. Una classe può ereditare le proprietà di un'altra classe che è già ereditata da qualche altra classe.

Sintassi

La sintassi di base dell'eredità multilivello è mostrata nello snippet di seguito:

Parente di classe pubblica
// Attributi di classe
// funzioni del membro

Public Class Child1 estende il genitore
// Attributi di classe
// funzioni del membro

Public Class Child2 estende Child1
// Attributi di classe
// funzioni del membro

La figura di seguito offrita fornirà una profonda comprensione dell'eredità multilivello:

Nella figura sopra offerta, il Child1 La classe è una classe derivata del Genitore Classe e Child2 La classe è la classe derivata di Child1. Quindi, possiamo dire che il Child2 La classe è un nipote del Genitore classe. In questo modo, l'eredità multilivello funziona in Java.

Esempio

Questo esempio crea quattro classi: prima è "Persona"Classe Second One è"Alunno"Classe che eredita il"Persona"Classe e il terzo è"Dipartimento"Classe che eredita il"Alunno" classe. La quarta classe è "Javainheritance" che contiene il metodo principale:

persona di classe
protetto int personaggio = 25;
String String Protected PersonName = "John";
public void display ()
Sistema.fuori.println ("questa è la classe persona");


Lo studente di classe estende la persona
protetto int rollno = 13;

Il dipartimento di classe estende lo studente
String String Protected Dept = "Informatica";

Classe pubblica JavainHeritance
public static void main (string [] args)
Dipartimento DEP = new Dipartimento ();
dep.Schermo();
Sistema.fuori.println ("Roll per studenti no. = " + Dep.rollno);
Sistema.fuori.println ("student name =" + dep.personale personale);
Sistema.fuori.println ("Student Age =" + Dep.personaggio);
Sistema.fuori.println ("dipartimento studentesco =" + dep.Dipartimento);

Nel frammento di cui sopra, possiamo osservare che una sottoclasse Alunno di classe Persona ha una classe figlio Dipartimento che garantisce che sia un esempio di eredità multilivello. La figura seguente fornisce il codice completo e il rispettivo output dell'eredità multilivello:

L'output sopra offerto autentica che il Dipartimento la classe può accedere agli attributi di Persona Classe attraverso Alunno classe. Che convalida il funzionamento dell'eredità multilivello.

Conclusione

Java fornisce diversi tipi di eredità che possono essere utilizzati per scopi diversi a seconda dei diversi scenari e delle esigenze dell'utente, ad esempio, in una singola eredità viene estesa dalla superclasse. Nell'eredità gerarchica, una superclasse può avere più sottoclassi. Mentre, nell'eredità multilivello, anche una sottoclasse di una classe genitore può avere una classe figlio. Questo articolo presenta una panoramica approfondita dei tipi di eredità e presenta una profonda comprensione della singola, multilivello e dell'eredità gerarchica, la loro sintassi e come implementarli in Java.