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
course content

Cursusinhoud

Java OOP

Java OOP

1. Hoe te Werken met een IDE?
2. Oop
3. Interface

book
OOP-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 ouderklasse of superklasse genoemd;

  • De klasse die is gemaakt op basis van de ouderklasse, wordt de kindklasse, subklasse of afgeleide klasse genoemd.

Hierdoor kan de kindklasse 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. We maken een klasse Bird, die in dit geval de bovenliggende klasse is. Deze klasse heeft zijn eigen velden en methoden;

  2. We maken een klasse Parrot, die het sleutelwoord extends gebruikt om te erven van de bovenliggende klasseBird. De klasse Parrot is een subklasse en heeft eigen velden en methoden. Daarnaast erft de subklasse Parrotalle velden en methoden van de bovenliggende klasse Bird;

  3. We maken een object van de klasse Parrot in de main-methode en 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 hebben we overerving gebruikt om de klasse Bird te erven.

Waarom doen we dit?

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

Opmerking

Je leert 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 behalveprivate variabelen en methoden.

Opmerking

Je kunt niet van jezelf erven!

Eerder heb ik 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 je voor dat we een klasse erven, maar dat bepaalde delen van de geërfde code niet naar wens zijn. Stel dat we willen dat een specifieke methode anders werkt dan in de bovenliggende klasse.

Om een methode van de bovenliggende klasse te overschrijven, schrijven 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 ouderklasse overschreven, en nu zal bij het aanroepen van deze methode vanuit de kindklasse de overschreven methode worden uitgevoerd!

  • Overerving voorkomen.

Als u niet wilt dat iemand uw 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 klasse Bird 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.

course content

Cursusinhoud

Java OOP

Java OOP

1. Hoe te Werken met een IDE?
2. Oop
3. Interface

book
OOP-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 ouderklasse of superklasse genoemd;

  • De klasse die is gemaakt op basis van de ouderklasse, wordt de kindklasse, subklasse of afgeleide klasse genoemd.

Hierdoor kan de kindklasse 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. We maken een klasse Bird, die in dit geval de bovenliggende klasse is. Deze klasse heeft zijn eigen velden en methoden;

  2. We maken een klasse Parrot, die het sleutelwoord extends gebruikt om te erven van de bovenliggende klasseBird. De klasse Parrot is een subklasse en heeft eigen velden en methoden. Daarnaast erft de subklasse Parrotalle velden en methoden van de bovenliggende klasse Bird;

  3. We maken een object van de klasse Parrot in de main-methode en 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 hebben we overerving gebruikt om de klasse Bird te erven.

Waarom doen we dit?

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

Opmerking

Je leert 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 behalveprivate variabelen en methoden.

Opmerking

Je kunt niet van jezelf erven!

Eerder heb ik 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 je voor dat we een klasse erven, maar dat bepaalde delen van de geërfde code niet naar wens zijn. Stel dat we willen dat een specifieke methode anders werkt dan in de bovenliggende klasse.

Om een methode van de bovenliggende klasse te overschrijven, schrijven 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 ouderklasse overschreven, en nu zal bij het aanroepen van deze methode vanuit de kindklasse de overschreven methode worden uitgevoerd!

  • Overerving voorkomen.

Als u niet wilt dat iemand uw 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 klasse Bird 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