Java >> Java tutorial >  >> Tag >> class

Java Arv | Arvetyper | Udvider klassen med eksempler

 Java Arv er begrebet objektorienteret programmering (OOP'er). Hvor et objekt (klasse eller grænseflade) erhverver egenskaben(metoder, variabler, osv. ) af et andet objekt. Det kaldes også Java udvider klassen.

Så ideen bag dette koncept er brugbarheden af ​​kode, hvilket betyder, når du opretter en ny klasse (barneklasse). Denne klasse udvider en anden klasse (overordnet klasse) og genbruger metoder, variabler og felter i den overordnede klasse. Så du behøver ikke at skrive den samme kode igen og igen.

Nedarvning repræsenterer IS-A-forholdet eller kan kalde en forælder-barn forhold. I dette selvstudie lærer du alt om arv med how-to klasse og grænseflader brug på forskellige typer af arv i Java.

Arvtyper i Java

Her er 5 typer af arv, vi vil lære med et eksempel på denne vejledning.

  1. Enkelt arv:
  2. Multiple arv:
  3. Arv på flere niveauer
  4. Hierarkisk arv:
  5. Hybrid arv:

Syntaks

Det anvendte søgeord udvider (for klasse) og Implementer (til grænseflade) i Java Inheritance.

For klasse udvider søgeord

class Super {
   .....
}
class Sub extends Super {
   .....
}

For Interface implementerer søgeord

public interface SuperInterface {

}

class Hello implements SuperInterface {

}

Vigtige vilkår for arv

  • Klasse: klasse er planen for et objekt, som har en fælles egenskab.
  • Udvider: udvides bruges til at opnå arv i underklasse.
  • Implementer: redskaber kommer, når du ønsker Inherit Interface.

Lad os begynde at lære Java-arv og bygge eksempler

Hvis man ser som klassebaser, arv, er der tre typer af arv – enkelt, multilevel og hierarkisk.

Og om multiple og hybrid arv understøttes kun via grænsefladen i Java.

Enkeltarv

En enkelt arv er en grundlæggende arv, hvor en klasse (underklasse) arver egenskaberne fra en anden klasse (superklasse). Her er et eksempel på Single Inheritance i Java med kode.

class Vehicle {
    void run(){
        System.out.println("Running");
    }
}

class TwoWheeler extends Vehicle {
    void wheel(){
        System.out.println("2 Wheeler");
    }
}

class InheritancesExamples{
    public static void main(String args[]) {
        //Creating object
        TwoWheeler twoWheeler = new TwoWheeler();
        twoWheeler.run();
        twoWheeler.wheel();

    }
}

Output: Løb
2-hjulet

Arv på flere niveauer

Multiple Inheritance Concept er meget påkrævet for at forstå  Inheritance. Så i denne tid arver en klasse en anden klasse, og denne klasse arver en anden klasse egenskab eller funktioner.

Grandfather -> Parent -> child

Lad os se dette eksempel på Multilevel Inheritance i Java.

class Vehicle {
    void run(){
        System.out.println("Running");
    }
}

class TwoWheeler extends Vehicle {
    void wheel(){
        System.out.println("2 Wheeler");
    }
}

class MotorBike extends TwoWheeler{
    void fuel(){
        System.out.println("Fuel Required : Petrol");
    }
}

class InheritancesExamples{
    public static void main(String args[]) {
        //Creating object
        MotorBike motorBike = new MotorBike();
        motorBike.run();
        motorBike.wheel();
        motorBike.fuel();

    }
}

Output: Løb
2 hjul
Nødvendigt brændstof:Benzin

Hierarkisk arv

Når en mange klasse (underklasse) arver fællesejendommen for en anden klasse (superklasse), kaldes det hierarkisk arv.

Her er et eksempel på en Hierarchical Inheritance i Java.

class Vehicle {
    void run(){
        System.out.println("Running");
    }
}

class TwoWheeler extends Vehicle {
    void wheel(){
        System.out.println("2 Wheeler");
    }
}

class FourWheeler extends Vehicle{
    void wheel(){
        System.out.println("4 Wheeler");
    }
}

class InheritancesExamples{
    public static void main(String args[]) {

        FourWheeler fourWheeler = new FourWheeler();
        fourWheeler.run();
        fourWheeler.wheel();

        TwoWheeler twoWheeler = new TwoWheeler();
        twoWheeler.run();
        twoWheeler.wheel();
    }
}

Output: Løb
4 hjul
Løb
2-hjulet

Multiple arv

Hvor en klasse (underordnet klasse) arver egenskaber fra mere end én klasse (overordnet klasse), kaldes Multiple Inheritance. Men det understøttes ikke i Java.

Java Multiple Inheritance understøttes af grænseflader. Så per definition kan enkelt arv arve flere grænseflader.

Sådan Multiple Inheritance i Java ved hjælp af et interface eksempel.

interface A {
    void doSomething();
}

interface B {

    void doSomething();
}

public interface InterfaceExample extends A, B {

    void doSomething();

}

Hybrid arv

Som på det øverste billede kan du se hvordan Hybrid arv i Java kan implementere. Fra niveau 1 til 2 er let, men når det er kommet til niveau 3 (Klasse D). Den gang skal du vide, at Java ikke understøtter en Inherit en enkelt klasse arver egenskaben af ​​mange klasser. For at få det gjort skal du bruge en grænseflade.

QA:Hvorfor bruge arv i Java?

Dette er et vigtigt spørgsmål i Interview, det kan også kaldes "Hvad er fordelen ved arv i Java"?

Her er nogle grunde til at bruge det:-

  • Vigtigst er kodebrugbarhed.
  • Effektiv at bruge, mens skrivning af kode kan øge projektudviklingshastigheden.
  • I OOPs-koncept – Til metodetilsidesættelse
  • Foretag globale ændringer af afledte (underordnede) klasser ved at ændre en basisklasse (overordnet).

QA:Hvorfor Multiple Inheritances ikke understøttes i Java?

Problemet med flere arv er, at to klasser kan definere metoder, der har forskellige måder at gøre det samme på, og underklassen kan ikke vælge, hvilken der skal vælges. Det kaldes data-ambiguity i programmeringstermer.

Her er et eksempel, hvis du lavede flere nedarvninger, så vil compileren give en fejl.

Skriv en kommentar, hvis du har nogen tvivl og forslag til denne tutorial. Denne tutorial er målrettet java-begyndere.


Java tag