Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Afgeleide Klassen | OOP Essentials
C# Verder dan de Basis

bookAfgeleide Klassen

Wanneer een klasse afgeleid is van een andere klasse, betekent dit dat het alle velden en methoden van de bovenliggende klasse bevat en daarnaast kan de afgeleide klasse extra velden en methoden bevatten.

Note
Opmerking

Een afgeleide klasse (ook wel een subklasse genoemd) is een klasse die de eigenschappen van een andere klasse erft, terwijl een basisklasse (ook wel een superklasse genoemd) een klasse is waarvan geërfd wordt.

De syntaxis voor het maken van een overgeërfde klasse is als volgt:

index.cs

index.cs

copy
1234567891011
// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }

Hier volgt een voorbeeld met concrete code:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }

In dit voorbeeld is Dog de afgeleide klasse, die erft van de basisklasse Animal. De klasse Dog heeft toegang tot de eigenschap Name en de methode Eat van de klasse Animal. Daarnaast introduceert het een nieuwe methode, Bark, die specifiek is voor de klasse Dog.

Zoals geïllustreerd in het diagram, kunnen er gevallen zijn waarin een klasse erft van een klasse die zelf al van een andere klasse erft:

index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }

In een dergelijk geval wordt de klasse op het hoogste niveau de Superklasse genoemd. In dit geval is Animal de superklasse. Een situatie waarin er meerdere niveaus van overerving zijn, wordt Multi-Level Inheritance genoemd.

Note
Opmerking

In sommige talen is het mogelijk dat een klasse van meerdere basisklassen erft; een dergelijke overerving wordt Multiple Inheritance genoemd. In C# kan een klasse slechts één bovenliggende klasse hebben, dus Multiple Inheritance is niet mogelijk in C#.

1. Welke keyword of symbool wordt in C# gebruikt om een afgeleide klasse te declareren?

2. Bij meerlagige overerving, hoe wordt de klasse aan de top genoemd?

3. Is meerlagige overerving mogelijk in C#?

question mark

Welke keyword of symbool wordt in C# gebruikt om een afgeleide klasse te declareren?

Select the correct answer

question mark

Bij meerlagige overerving, hoe wordt de klasse aan de top genoemd?

Select the correct answer

question mark

Is meerlagige overerving mogelijk in C#?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

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

Awesome!

Completion rate improved to 2.04

bookAfgeleide Klassen

Veeg om het menu te tonen

Wanneer een klasse afgeleid is van een andere klasse, betekent dit dat het alle velden en methoden van de bovenliggende klasse bevat en daarnaast kan de afgeleide klasse extra velden en methoden bevatten.

Note
Opmerking

Een afgeleide klasse (ook wel een subklasse genoemd) is een klasse die de eigenschappen van een andere klasse erft, terwijl een basisklasse (ook wel een superklasse genoemd) een klasse is waarvan geërfd wordt.

De syntaxis voor het maken van een overgeërfde klasse is als volgt:

index.cs

index.cs

copy
1234567891011
// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }

Hier volgt een voorbeeld met concrete code:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637
using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }

In dit voorbeeld is Dog de afgeleide klasse, die erft van de basisklasse Animal. De klasse Dog heeft toegang tot de eigenschap Name en de methode Eat van de klasse Animal. Daarnaast introduceert het een nieuwe methode, Bark, die specifiek is voor de klasse Dog.

Zoals geïllustreerd in het diagram, kunnen er gevallen zijn waarin een klasse erft van een klasse die zelf al van een andere klasse erft:

index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }

In een dergelijk geval wordt de klasse op het hoogste niveau de Superklasse genoemd. In dit geval is Animal de superklasse. Een situatie waarin er meerdere niveaus van overerving zijn, wordt Multi-Level Inheritance genoemd.

Note
Opmerking

In sommige talen is het mogelijk dat een klasse van meerdere basisklassen erft; een dergelijke overerving wordt Multiple Inheritance genoemd. In C# kan een klasse slechts één bovenliggende klasse hebben, dus Multiple Inheritance is niet mogelijk in C#.

1. Welke keyword of symbool wordt in C# gebruikt om een afgeleide klasse te declareren?

2. Bij meerlagige overerving, hoe wordt de klasse aan de top genoemd?

3. Is meerlagige overerving mogelijk in C#?

question mark

Welke keyword of symbool wordt in C# gebruikt om een afgeleide klasse te declareren?

Select the correct answer

question mark

Bij meerlagige overerving, hoe wordt de klasse aan de top genoemd?

Select the correct answer

question mark

Is meerlagige overerving mogelijk in C#?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 1
some-alt