Overzicht van erfenis in Java

In tegenstelling tot andere programmeertalen zoals C, biedt Java een mechanisme waarmee gegevensleden en methoden van de ene klasse worden overgenomen door een andere klasse. Dit proces wordt Inheritance in Java genoemd. Om van een klasse te erven, wordt het trefwoord 'extended' gebruikt. Overerving in Java maakt herbruikbaarheid van code mogelijk, zodat een klasse alleen de unieke functies hoeft te schrijven en de rest van de code van de andere klasse kan worden uitgebreid. De klasse die overneemt van de andere klasse staat bekend als subklasse of onderliggende klasse en de overgeërfde klasse staat bekend als bovenliggende klasse of superklasse. Syntaxis, typen en implementatie van overerving worden in de volgende secties besproken.

Soorten overerving in Java

Overerving betekent een IS-A-relatie die ook wel een ouder-kindrelatie wordt genoemd. Ouder en kind worden al genoemd in het inleidende gedeelte.

Voordat we naar de typen overerving in Java gaan, laten we eerst de syntaxis van overerving bekijken.

Syntaxis:

class apple extends fruit
(
//methods and fields
)

Hier is appel de subklasse en fruit is de ouderklasse. Dit betekent dat appel bepaalde unieke eigenschappen heeft en het heeft ook de eigenschappen van de vrucht.

Er zijn 4 verschillende soorten overerving in Java.

  • Enkele erfenis
  • Overname op meerdere niveaus
  • Hiërarchisch erfdeel
  • Meerdere overerving (met behulp van interfaces)

Laten we nu elk van hen in detail bekijken.

1. Enkele erfenis

Een klasse die slechts één klasse uitbreidt. In het volgende voorbeeld breidt klasseappel klassefruit uit.

dwz Fruit is de superklasse en Apple is de subklasse die de eigenschappen en het gedrag van de Fruit-klasse uitbreidt.

Hierna volgt de demonstratie van single Inheritance in Java.

Code:

//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
)
)

Output:

2. Overname op meerdere niveaus

In dit type overerving wordt een klasse uitgebreid van een andere klasse en de afgeleide klasse fungeert als de basisklasse voor een andere klasse.

In de figuur is bijvoorbeeld een klasse vierwieler de ouderklasse en is de auto de afgeleide klasse van de vierwieler klasse. Tegelijkertijd kan de klasse auto de basisklasse zijn voor klasse Maruti.

Code:

//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();
)
)

Output:

3. Hiërarchisch erfdeel

In Hiërarchische overerving heeft een basisklasse meer dan één onderliggende klasse, wat betekent dat de eigenschappen van een klasse worden verkregen door verschillende klassen.

Een klasse voertuig heeft bijvoorbeeld subklasse auto's, fietsen, scooters.

Code:

//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();
)
)

Output:

4. Meerdere overerving

Meerdere overerving in Java is een type overerving waarin een klasse meer dan één bovenliggende klasse heeft.

Klasse C verwerft bijvoorbeeld de eigenschappen van zowel klasse A als klasse B.

Maar in Java kan Multiple Inheritance alleen worden bereikt door interfaces te gebruiken.

Stel dat meerdere overervingen worden geïmplementeerd, net als andere soorten overerving, kan een compilatie-fout als volgt optreden.

Code:

//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();
)
)

Hier wordt de uitvoer niet weergegeven omdat deze een compilatie-fout bevat.

Het belang van erfenis in Java

  • Herbruikbaarheid van code: overerving helpt bij het verminderen van het herschrijven van code. dwz Code kan worden hergebruikt door andere klassen en de onderliggende klasse hoeft alleen zijn eigen unieke eigenschappen te schrijven. Dit vermindert het tijdverbruik en de complexiteit van de code.
  • Voor methode overschrijven: een methode die al in de bovenliggende klasse aanwezig is, wordt door de onderliggende klasse gedeclareerd en wordt dan methode overschrijven genoemd.
Opmerking: stel dat als een klasse niet opnieuw moet worden gebruikt, het trefwoord final kan worden gebruikt.

Syntaxis:

final class A
(
. . .
)
Class B extends A
(
. . .
)

In dit geval wordt een fout gegenereerd met de melding 'Kan niet erven van de laatste A'.

Conclusie

Overerving in Java is een eigenschap waarmee eigenschappen en gedrag van een klasse door een andere klasse worden verworven om herbruikbaarheid van code te bieden. Er zijn verschillende soorten overerving in Java, zoals Single Inheritance, Multi-level Inheritance, Hierarchical Inheritance en Multiple Inheritance in Java. In dit document komen verschillende belangrijke aspecten van overerving aan bod.

Aanbevolen artikelen

Dit is een gids voor erfenis in Java. Hier bespreken we het belang en de verschillende soorten overerving in Java, samen met syntaxis, voorbeelden en code-implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. JScrollPane in Java
  2. Sessies in PHP
  3. Sorteren op Java
  4. Wat is Java Garbage Collector?
  5. Hulpmiddelen voor Java-implementatie
  6. Overschrijven in Java
  7. Overerving in PHP