Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Deriverade Klasser | OOP-Grunder
C# Bortom Grunderna

bookDeriverade 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.

Note
Notering

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

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 }

Här är ett exempel med konkret kod:

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(); } }

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

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(); } }

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.

Note
Notering

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#?

question mark

Vilket nyckelord eller symbol används i C# för att deklarera en härledd klass?

Select the correct answer

question mark

Vid flernivåarv, vad kallas klassen högst upp?

Select the correct answer

question mark

Är flernivåarv möjligt i C#?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookDeriverade 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.

Note
Notering

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

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 }

Här är ett exempel med konkret kod:

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(); } }

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

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(); } }

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.

Note
Notering

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#?

question mark

Vilket nyckelord eller symbol används i C# för att deklarera en härledd klass?

Select the correct answer

question mark

Vid flernivåarv, vad kallas klassen högst upp?

Select the correct answer

question mark

Är flernivåarv möjligt i C#?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 1
some-alt