Afgeleide 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.
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
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
12345678910111213141516171819202122232425262728293031323334353637using 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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.
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#?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain more about multi-level inheritance with an example?
What are the benefits of using inheritance in programming?
Are there any limitations or drawbacks to using inheritance?
Awesome!
Completion rate improved to 2.04
Afgeleide 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.
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
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
12345678910111213141516171819202122232425262728293031323334353637using 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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.
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#?
Bedankt voor je feedback!