Java >> Java-zelfstudie >  >> Java

Overerving op meerdere niveaus in Java met voorbeeld

In Java Overerving op meerdere niveaus subklasse zal een bovenliggende klasse erven en evenals de subklasse werkt als de bovenliggende klasse naar een andere klas. Laten we nu eens kijken naar het onderstaande stroomdiagram, we kunnen KlasseB-overervingen zien het eigendom van ClassA en nogmaals KlasseB optreden als ouder voor ClassC . In het kort KlasseA ouder voor KlasseB en KlasseB ouder voor ClassC .
De ClassC erft de leden van ClassB direct zoals het er expliciet van is afgeleid, terwijl de leden van ClassA worden indirect geërfd in ClassC (via KlasseB ). Dus de KlasseB fungeert als een directe superklasse en ClassA fungeert als een indirecte superklasse voor ClassC .

Voorbeeld van overerving op meerdere niveaus

We hebben 4 klassen Persoon, Personeel, Tijdelijk Personeel en MultilevelInheritanceExample (hoofdklasse) . Hier Persoon klas wordt overgenomen door Personeel klas en Personeel klasse wordt opnieuw overgenomen door de TemporaryStaff klas. Tijdelijk personeel klas heeft toegang tot de leden van beide Personeel klasse(rechtstreeks ) en Persoon class(indirect ).

package com.javainterviewpoint;
class Person
{
    private String name; 
    Person(String s) 
    {   
          setName(s); 
    } 
    public void setName(String s) 
    { 
      name = s; 
    } 
    public String getName() 
    { 
      return name; 
    } 
    public void display() 
    { 
      System.out.println("Name of Person = " + name); 
    } 
}
class Staff extends Person
{
    private int staffId; 
    Staff(String name,int staffId) 
    { 
      super(name); 
      setStaffId(staffId); 
    } 
    public int getStaffId() {
        return staffId;
    }
    public void setStaffId(int staffId) {
        this.staffId = staffId;
    }
    public void display() 
    { 
      super.display(); 
      System.out.println("Staff Id is  = " + staffId); 
    } 
}
class TemporaryStaff extends Staff
{
    private int days; 
    private int hoursWorked; 
    TemporaryStaff(String sname,int id,int days,int hoursWorked) 
    {      
       super(sname,id); 
       this.days  = days; 
       this.hoursWorked = hoursWorked; 
    } 
    public int Salary() 
    { 
        int salary = days * hoursWorked * 50;
        
      return salary;
    } 
    public void display() 
    { 
      super.display(); 
      System.out.println("No. of Days = " + days); 
      System.out.println("No. of Hours Worked = " + hoursWorked); 
      System.out.println("Total Salary = " + Salary()); 
    } 
}
public class MultilevelInheritanceExample 
{
    public static void main(String args[])
    {
        TemporaryStaff ts = new TemporaryStaff("JavaInterviewPoint",999,10,8);
        ts.display();
    }
}

Uitvoer:

Name of Person = JavaInterviewPoint
Staff Id is  = 999
No. of Days = 10
No. of Hours Worked = 8
Total Salary = 4000

Java-tag