Avledede Klasser
Når du sier at en klasse er avledet fra en annen klasse, betyr det at den har alle feltene og metodene til foreldreklassen, og i tillegg kan den avledede klassen inneholde ekstra felt og metoder.

En avledet klasse (også kalt en barneklasse) er en klasse som arver egenskapene til en annen klasse, mens en baseklasse (også kalt en foreldreklasse) er en klasse som blir arvet fra.
Syntaksen for å lage en arvet klasse er følgende:
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 }
Her er et eksempel med konkret kode:
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 dette eksemplet er Dog
den avledede klassen, som arver fra Animal
-basisklassen. Dog
-klassen har tilgang til Name
-egenskapen og Eat
-metoden fra Animal
-klassen. I tillegg introduserer den en ny metode, Bark
, som er spesifikk for Dog
-klassen.
Som illustrert i diagrammet, kan det finnes tilfeller der en klasse arver fra en klasse som allerede er en klasse fra en annen:
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 et slikt tilfelle kalles klassen på det øverste nivået for Superklassen. I dette tilfellet er Animal
superklassen. Et slikt tilfelle hvor det er flere nivåer av arv kalles flernivåarv.
I noen språk tillates det at en klasse arver fra flere baseklasser, slik arv kalles multippel arv. I C# kan en klasse kun ha én foreldresklasse, så multippel arv er ikke mulig i C#.
1. I C#, hvilket nøkkelord eller symbol brukes for å erklære en avledet klasse?
2. Hva kalles klassen øverst i multilevel-arv?
3. Er multilevel-arv mulig i C#?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.04
Avledede Klasser
Sveip for å vise menyen
Når du sier at en klasse er avledet fra en annen klasse, betyr det at den har alle feltene og metodene til foreldreklassen, og i tillegg kan den avledede klassen inneholde ekstra felt og metoder.

En avledet klasse (også kalt en barneklasse) er en klasse som arver egenskapene til en annen klasse, mens en baseklasse (også kalt en foreldreklasse) er en klasse som blir arvet fra.
Syntaksen for å lage en arvet klasse er følgende:
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 }
Her er et eksempel med konkret kode:
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 dette eksemplet er Dog
den avledede klassen, som arver fra Animal
-basisklassen. Dog
-klassen har tilgang til Name
-egenskapen og Eat
-metoden fra Animal
-klassen. I tillegg introduserer den en ny metode, Bark
, som er spesifikk for Dog
-klassen.
Som illustrert i diagrammet, kan det finnes tilfeller der en klasse arver fra en klasse som allerede er en klasse fra en annen:
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 et slikt tilfelle kalles klassen på det øverste nivået for Superklassen. I dette tilfellet er Animal
superklassen. Et slikt tilfelle hvor det er flere nivåer av arv kalles flernivåarv.
I noen språk tillates det at en klasse arver fra flere baseklasser, slik arv kalles multippel arv. I C# kan en klasse kun ha én foreldresklasse, så multippel arv er ikke mulig i C#.
1. I C#, hvilket nøkkelord eller symbol brukes for å erklære en avledet klasse?
2. Hva kalles klassen øverst i multilevel-arv?
3. Er multilevel-arv mulig i C#?
Takk for tilbakemeldingene dine!