Ricerca…


Osservazioni

Nota: l'ereditarietà a più livelli è consentita in Java ma non in ereditarietà multipla. Scopri di più su http://beginnersbook.com/2013/04/oops-concepts/

Eredità - Definizione

L'ereditarietà è uno dei concetti principali della programmazione orientata agli oggetti (OOP) . Usando l'ereditarietà, possiamo modellare correttamente un problema e possiamo ridurre il numero di linee che dobbiamo scrivere. Vediamo l'ereditarietà usando un esempio popolare.

Considera che devi modellare il regno animale (regno animale semplificato, ovviamente, i biologi, scusami) usando OOP. Ci sono molte specie di animali, alcune hanno caratteristiche uniche, mentre altre condividono le stesse caratteristiche.

Ci sono le principali famiglie di animali. Diciamo, Mammals , Reptiles .

Poi abbiamo figli di quelle famiglie. Per un esempio,

  • Cat , Dog e Lion sono mammiferi.
  • Cobra e Python sono rettili.

Ogni animale condivide alcune caratteristiche di base come eat , drink , move . Quindi possiamo dire che possiamo avere un genitore chiamato Animal da cui possono ereditare quelle caratteristiche di base.

Quindi anche quelle famiglie condividono alcune caratteristiche. Per un esempio i rettili usano la scansione per spostarsi. Ogni mammifero viene fed milk nelle prime fasi della vita.

Poi ci sono alcune caratteristiche uniche per ogni animale.

Considera se dobbiamo creare queste specie animali separatamente. Dobbiamo scrivere più volte lo stesso codice in ogni specie animale. Invece di quello, usiamo l'ereditarietà. Possiamo modellare il regno animale come segue:

  • Possiamo avere un oggetto genitore chiamato Animal , che ha caratteristiche di base di tutti gli animali.
  • Mammal e Reptile (ovviamente anche le altre famiglie di animali) oggetti con le loro caratteristiche comuni mentre ereditano le caratteristiche di base dall'oggetto genitore, Animal .
  • Oggetti di specie animali: Cat e Dog ereditano dall'oggetto Mammal , Cobra e Python ereditano dall'oggetto Reptile , e così via.

In questa forma possiamo ridurre il codice che scriviamo, poiché non è necessario definire le caratteristiche di base degli animali in ogni specie animale, poiché possiamo definirli nell'oggetto Animal e quindi ereditarli. La stessa cosa vale per le famiglie di animali.

Esempio di successione - Considerare sotto due classi

Classe dell'insegnante:

class Teacher {
       private String name;
       private double salary;
       private String subject;
       public Teacher (String tname)  {
           name = tname;
       }
       public String getName()  {
           return name;
       }
       private double getSalary()  {
           return salary;
       }
       private String  getSubject()  {
            return  subject;
       }
    }

Classe OfficeStaff:

class  OfficeStaff{
   private String name;
   private double salary;
   private String dept;
   public OfficeStaff (String sname)  {
      name = sname;
   }
   public String getName()  {
       return name;
   }
   private double  getSalary()  {
       return salary;
   }
   private String  getDept ()  {
       return dept;
   }
}
  1. Entrambe le classi condividono poche proprietà e metodi comuni. Quindi ripetizione del codice.
  2. Creazione di una classe che contiene i metodi e le proprietà comuni.
  3. Le classi Teacher e OfficeStaff possono ereditare tutte le proprietà e i metodi comuni dalla classe Employee.

Classe dei dipendenti:

class Employee{
   private String name;
   private double salary;
   public Employee(String ename){
      name=ename;
   }
   public String getName(){
      return name;
   }
   private double getSalary(){
      return salary;
   } 
}
  1. Aggiungi metodi e proprietà individuali ad esso Una volta creata una super classe che definisce gli attributi comuni a un insieme di oggetti, può essere usata per creare qualsiasi numero di sottoclassi più specifiche
  2. Classi simili come Engineer, Principal possono essere generati come sottoclassi dalla classe Employee.
  3. La classe genitore è definita super classe e la classe ereditata è la sottoclasse
  4. Una sottoclasse è la versione specializzata di una super classe: eredita tutte le variabili di istanza e i metodi definiti dalla super classe e aggiunge i propri elementi unici.
  5. Sebbene una sottoclasse includa tutti i membri della sua super classe, non può accedere a quei membri della super classe che sono stati dichiarati come privati.
  6. Una variabile di riferimento di una super classe può essere assegnata a un riferimento a qualsiasi sottoclasse derivata da quella super classe es. Employee emp = new Teacher ();


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow