Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer OOP-Principes Overerving | Oop
Java OOP

bookOOP-Principes Overerving

Overerving

Laten we het hebben over het OOP-principe - Overerving.

Overerving is een mechanisme waarmee klassen kunnen worden gemaakt op basis van een andere klasse.

  • De klasse die als basis dient, wordt de ouder of superklasse genoemd;
  • De klasse die is gemaakt op basis van de ouderklasse wordt de kindklasse, subklasse of afstammeling genoemd.

De kindklasse kan dus de kenmerken en eigenschappen van een andere klasse erven - de ouderklasse (haar methoden en variabelen).

Je kunt een klasse erven met het sleutelwoord extends. De syntaxis voor een kindklasse die erft van een ouderklasse ziet er als volgt uit:

Child.java

Child.java

copy
123
class Child extends Parent { // properties and methods }

Laten we een voorbeeld bekijken van hoe overerving werkt in code. We hebben een klasse Bird met bepaalde velden en methoden, en er is een klasse Parrot met zijn eigen velden en methoden. Een papegaai is een vogel, dus logisch gezien zou de papegaai moeten erven van de klasse Bird:

Hier is de code uit de screenshot, herschreven voor betere leesbaarheid en duidelijkheid:

Bird.java

Bird.java

Parrot.java

Parrot.java

Main.java

Main.java

copy
12345678910111213141516171819
package animals.birds; public class Bird { public String color; public boolean canFly; public int maxAge; public void eat() { System.out.println("The bird is eating"); } public void fly() { if (canFly) { System.out.println("The bird is flying!"); } else { System.out.println("This bird can't fly :("); } } }

Laten we begrijpen wat er in deze afbeeldingen gebeurt:

  1. Er wordt een klasse Bird aangemaakt, die in dit geval de bovenliggende klasse is. Deze klasse heeft eigen velden en methoden;
  2. Er wordt een klasse Parrot aangemaakt, die met het sleutelwoord extends erft van de bovenliggende klasse Bird. De klasse Parrot is een subklasse en heeft eigen velden en methoden. Daarnaast erft de subklasse Parrot alle velden en methoden van de bovenliggende klasse Bird;
  3. Er wordt een object van de klasse Parrot aangemaakt in de main-methode en we zien dat we de velden van zowel de bovenliggende als de subklasse kunnen initialiseren. Eerst initialiseren we de velden van de bovenliggende klasse Bird, daarna de velden van de subklasse Parrot. Vervolgens roepen we de methoden aan: eerst die van de bovenliggende klasse, daarna de methode van de subklasse.

Op deze manier is overerving gebruikt om de klasse Bird te erven.

Waarom doen we dit?

Wanneer er veel verschillende subklassen van Bird zijn, niet alleen Parrot, maar bijvoorbeeld ook Pigeon en Penguin, ontstaan er veel gedupliceerde velden, zoals boolean canFly. Het eerste voordeel van overerving is het voorkomen van dubbele codefragmenten. Bovendien verbetert het de leesbaarheid aanzienlijk. In de praktijk kom je de klasse Bird en haar subklassen zelden direct tegen, maar overerving wordt veel gebruikt, vooral met interfaces.

Opmerking

Je leert meer over interfaces in het volgende onderdeel van deze cursus.

Regels voor overerving

  • Erft slechts één klasse. Java ondersteunt geen meervoudige overerving. Een klasse kan slechts één bovenliggende klasse hebben;

  • Alles wordt geërfd behalve private variabelen en methoden.

Opmerking

Je kunt niet van jezelf erven!

Eerder werd vermeld dat een subklasse toegang heeft tot alle variabelen en methoden van de bovenliggende klasse. Dat is echter niet helemaal waar.

In werkelijkheid zijn alle methoden en variabelen met de private modifier niet toegankelijk voor de subklasse.

  • Overschrijf de methode van de bovenliggende klasse.

Stel dat we een klasse erven, maar bepaalde delen van de geërfde code willen aanpassen. Bijvoorbeeld, we willen dat een specifieke methode anders werkt dan in de bovenliggende klasse.

Om een methode van de bovenliggende klasse te overschrijven, plaatsen we @Override erboven:

Parrot.java

Parrot.java

copy
1234
@Override public void eat() { System.out.println("The parrot is eating"); }

In de bovenstaande code hebben we de methode van de ouder-klasse overschreven, en nu zal, wanneer deze methode vanuit de kind-klasse wordt aangeroepen, de overschreven methode worden uitgevoerd!

  • Overerving voorkomen.

Als je niet wilt dat iemand jouw klasse erft, gebruik dan de final modifier ervoor. Bijvoorbeeld:

Bird.java

Bird.java

Parrot.java

Parrot.java

copy
123
public final class Bird { // fields and methods }

Op deze manier hebben we met het sleutelwoord final de overerving van de Bird-klasse verboden.

Dit zijn slechts de basisregels en kenmerken van overerving. Het is een uitgebreid onderwerp dat je zeer vaak zult gebruiken. Gedurende de cursus maak je kennis met andere aspecten van overerving en zul je deze vaker toepassen.

1. Waarom hebben we overerving nodig in Java?

2. Van hoeveel klassen kunnen we tegelijk erven?

3. Hoe kunnen we overerving in Java voorkomen?

question mark

Waarom hebben we overerving nodig in Java?

Select the correct answer

question mark

Van hoeveel klassen kunnen we tegelijk erven?

Select the correct answer

question mark

Hoe kunnen we overerving in Java voorkomen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain how method overriding works in inheritance?

What is the difference between private and public fields in inheritance?

Why can't Java support multiple inheritance?

Awesome!

Completion rate improved to 4.76

bookOOP-Principes Overerving

Veeg om het menu te tonen

Overerving

Laten we het hebben over het OOP-principe - Overerving.

Overerving is een mechanisme waarmee klassen kunnen worden gemaakt op basis van een andere klasse.

  • De klasse die als basis dient, wordt de ouder of superklasse genoemd;
  • De klasse die is gemaakt op basis van de ouderklasse wordt de kindklasse, subklasse of afstammeling genoemd.

De kindklasse kan dus de kenmerken en eigenschappen van een andere klasse erven - de ouderklasse (haar methoden en variabelen).

Je kunt een klasse erven met het sleutelwoord extends. De syntaxis voor een kindklasse die erft van een ouderklasse ziet er als volgt uit:

Child.java

Child.java

copy
123
class Child extends Parent { // properties and methods }

Laten we een voorbeeld bekijken van hoe overerving werkt in code. We hebben een klasse Bird met bepaalde velden en methoden, en er is een klasse Parrot met zijn eigen velden en methoden. Een papegaai is een vogel, dus logisch gezien zou de papegaai moeten erven van de klasse Bird:

Hier is de code uit de screenshot, herschreven voor betere leesbaarheid en duidelijkheid:

Bird.java

Bird.java

Parrot.java

Parrot.java

Main.java

Main.java

copy
12345678910111213141516171819
package animals.birds; public class Bird { public String color; public boolean canFly; public int maxAge; public void eat() { System.out.println("The bird is eating"); } public void fly() { if (canFly) { System.out.println("The bird is flying!"); } else { System.out.println("This bird can't fly :("); } } }

Laten we begrijpen wat er in deze afbeeldingen gebeurt:

  1. Er wordt een klasse Bird aangemaakt, die in dit geval de bovenliggende klasse is. Deze klasse heeft eigen velden en methoden;
  2. Er wordt een klasse Parrot aangemaakt, die met het sleutelwoord extends erft van de bovenliggende klasse Bird. De klasse Parrot is een subklasse en heeft eigen velden en methoden. Daarnaast erft de subklasse Parrot alle velden en methoden van de bovenliggende klasse Bird;
  3. Er wordt een object van de klasse Parrot aangemaakt in de main-methode en we zien dat we de velden van zowel de bovenliggende als de subklasse kunnen initialiseren. Eerst initialiseren we de velden van de bovenliggende klasse Bird, daarna de velden van de subklasse Parrot. Vervolgens roepen we de methoden aan: eerst die van de bovenliggende klasse, daarna de methode van de subklasse.

Op deze manier is overerving gebruikt om de klasse Bird te erven.

Waarom doen we dit?

Wanneer er veel verschillende subklassen van Bird zijn, niet alleen Parrot, maar bijvoorbeeld ook Pigeon en Penguin, ontstaan er veel gedupliceerde velden, zoals boolean canFly. Het eerste voordeel van overerving is het voorkomen van dubbele codefragmenten. Bovendien verbetert het de leesbaarheid aanzienlijk. In de praktijk kom je de klasse Bird en haar subklassen zelden direct tegen, maar overerving wordt veel gebruikt, vooral met interfaces.

Opmerking

Je leert meer over interfaces in het volgende onderdeel van deze cursus.

Regels voor overerving

  • Erft slechts één klasse. Java ondersteunt geen meervoudige overerving. Een klasse kan slechts één bovenliggende klasse hebben;

  • Alles wordt geërfd behalve private variabelen en methoden.

Opmerking

Je kunt niet van jezelf erven!

Eerder werd vermeld dat een subklasse toegang heeft tot alle variabelen en methoden van de bovenliggende klasse. Dat is echter niet helemaal waar.

In werkelijkheid zijn alle methoden en variabelen met de private modifier niet toegankelijk voor de subklasse.

  • Overschrijf de methode van de bovenliggende klasse.

Stel dat we een klasse erven, maar bepaalde delen van de geërfde code willen aanpassen. Bijvoorbeeld, we willen dat een specifieke methode anders werkt dan in de bovenliggende klasse.

Om een methode van de bovenliggende klasse te overschrijven, plaatsen we @Override erboven:

Parrot.java

Parrot.java

copy
1234
@Override public void eat() { System.out.println("The parrot is eating"); }

In de bovenstaande code hebben we de methode van de ouder-klasse overschreven, en nu zal, wanneer deze methode vanuit de kind-klasse wordt aangeroepen, de overschreven methode worden uitgevoerd!

  • Overerving voorkomen.

Als je niet wilt dat iemand jouw klasse erft, gebruik dan de final modifier ervoor. Bijvoorbeeld:

Bird.java

Bird.java

Parrot.java

Parrot.java

copy
123
public final class Bird { // fields and methods }

Op deze manier hebben we met het sleutelwoord final de overerving van de Bird-klasse verboden.

Dit zijn slechts de basisregels en kenmerken van overerving. Het is een uitgebreid onderwerp dat je zeer vaak zult gebruiken. Gedurende de cursus maak je kennis met andere aspecten van overerving en zul je deze vaker toepassen.

1. Waarom hebben we overerving nodig in Java?

2. Van hoeveel klassen kunnen we tegelijk erven?

3. Hoe kunnen we overerving in Java voorkomen?

question mark

Waarom hebben we overerving nodig in Java?

Select the correct answer

question mark

Van hoeveel klassen kunnen we tegelijk erven?

Select the correct answer

question mark

Hoe kunnen we overerving in Java voorkomen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2
some-alt