Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Avledede Klasser | OOP-Grunnprinsipper
C# Utover Det Grunnleggende

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

Note
Merk

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

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 }

Her er et eksempel med konkret kode:

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

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

Note
Merk

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

question mark

I C#, hvilket nøkkelord eller symbol brukes for å erklære en avledet klasse?

Select the correct answer

question mark

Hva kalles klassen øverst i multilevel-arv?

Select the correct answer

question mark

Er multilevel-arv mulig i C#?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

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

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

Note
Merk

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

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 }

Her er et eksempel med konkret kode:

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

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

Note
Merk

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

question mark

I C#, hvilket nøkkelord eller symbol brukes for å erklære en avledet klasse?

Select the correct answer

question mark

Hva kalles klassen øverst i multilevel-arv?

Select the correct answer

question mark

Er multilevel-arv mulig i C#?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1
some-alt