Deriverade Klasser
När en klass sägs vara härledd från en annan klass innebär det att den har alla fält och metoder från föräldraklassen och dessutom kan den härledda klassen innehålla ytterligare fält och metoder.

En härledd klass (även kallad barnklass) är en klass som ärver egenskaper från en annan klass, medan en basklass (även kallad föräldraklass) är en klass som ärvs ifrån.
Syntaxen för att skapa en ärvd klass är följande:
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 }
Här är ett exempel med konkret kod:
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(); } }
I det här exemplet är Dog
den härledda klassen som ärver från basklassen Animal
. Klassen Dog
har tillgång till egenskapen Name
och metoden Eat
från klassen Animal
. Dessutom introducerar den en ny metod, Bark
, som är specifik för klassen Dog
.
Som illustreras i diagrammet kan det finnas fall där en klass ärver från en klass som redan är en klass från någon annan:
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(); } }
I ett sådant fall kallas klassen på den översta nivån för Superklass. I detta fall är Animal
superklassen. Ett sådant fall där det finns flera nivåer av arv kallas Flernivåarv.
I vissa språk tillåts en klass att ärva från flera basklasser, ett sådant arv kallas Multipelt arv. I C# kan en klass endast ha en föräldraklass, så multipelt arv är inte möjligt i C#.
1. Vilket nyckelord eller symbol används i C# för att deklarera en härledd klass?
2. Vid flernivåarv, vad kallas klassen högst upp?
3. Är flernivåarv möjligt i C#?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Deriverade Klasser
Svep för att visa menyn
När en klass sägs vara härledd från en annan klass innebär det att den har alla fält och metoder från föräldraklassen och dessutom kan den härledda klassen innehålla ytterligare fält och metoder.

En härledd klass (även kallad barnklass) är en klass som ärver egenskaper från en annan klass, medan en basklass (även kallad föräldraklass) är en klass som ärvs ifrån.
Syntaxen för att skapa en ärvd klass är följande:
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 }
Här är ett exempel med konkret kod:
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(); } }
I det här exemplet är Dog
den härledda klassen som ärver från basklassen Animal
. Klassen Dog
har tillgång till egenskapen Name
och metoden Eat
från klassen Animal
. Dessutom introducerar den en ny metod, Bark
, som är specifik för klassen Dog
.
Som illustreras i diagrammet kan det finnas fall där en klass ärver från en klass som redan är en klass från någon annan:
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(); } }
I ett sådant fall kallas klassen på den översta nivån för Superklass. I detta fall är Animal
superklassen. Ett sådant fall där det finns flera nivåer av arv kallas Flernivåarv.
I vissa språk tillåts en klass att ärva från flera basklasser, ett sådant arv kallas Multipelt arv. I C# kan en klass endast ha en föräldraklass, så multipelt arv är inte möjligt i C#.
1. Vilket nyckelord eller symbol används i C# för att deklarera en härledd klass?
2. Vid flernivåarv, vad kallas klassen högst upp?
3. Är flernivåarv möjligt i C#?
Tack för dina kommentarer!