Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Johdetut Luokat | OOP:n Perusteet
C# Perusteiden Jälkeen

bookJohdetut Luokat

Kun sanotaan, että luokka on peritty toisesta luokasta, se tarkoittaa, että sillä on kaikki yläluokan kentät ja metodit, ja lisäksi peritty luokka voi sisältää omia lisäkenttiä ja -metodeja.

Note
Huomio

Peritty luokka (kutsutaan myös aliluokaksi) on luokka, joka perii toisen luokan ominaisuudet. Vastaavasti kantaluokka (kutsutaan myös yläluokaksi) on luokka, josta peritään.

Perityn luokan syntaksi on seuraava:

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 }

Tässä on esimerkki konkreettisella koodilla:

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

Tässä esimerkissä Dog on johdettu luokka, joka perii Animal-kantaluokan. Dog-luokalla on pääsy Name-ominaisuuteen ja Eat-metodiin, jotka tulevat Animal-luokasta. Lisäksi se esittelee uuden metodin, Bark, joka on ominainen vain Dog-luokalle.

Kuten kaaviossa on esitetty, voi olla tilanteita, joissa luokka perii luokan, joka on jo jonkin toisen luokan alaluokka:

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

Tällaisessa tapauksessa ylimmän tason luokkaa kutsutaan yliluokaksi (Super Class). Tässä tapauksessa Animal on yliluokka. Tilannetta, jossa perintää on usealla tasolla, kutsutaan monitasoiseksi perinnäksi.

Note
Huomio

Joissakin kielissä luokka voi periä useammasta kantaluokasta, tällaista perintää kutsutaan moniperinnäksi. C#:ssa luokalla voi olla vain yksi yliluokka, joten moniperintä ei ole mahdollista C#:ssa.

1. C#:ssa, mitä avainsanaa tai symbolia käytetään johdetun luokan määrittelyyn?

2. Monitasoisessa periytymisessä, miksi kutsutaan ylimpänä olevaa luokkaa?

3. Onko monitasoinen periytyminen mahdollista C#:ssa?

question mark

C#:ssa, mitä avainsanaa tai symbolia käytetään johdetun luokan määrittelyyn?

Select the correct answer

question mark

Monitasoisessa periytymisessä, miksi kutsutaan ylimpänä olevaa luokkaa?

Select the correct answer

question mark

Onko monitasoinen periytyminen mahdollista C#:ssa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 2.04

bookJohdetut Luokat

Pyyhkäise näyttääksesi valikon

Kun sanotaan, että luokka on peritty toisesta luokasta, se tarkoittaa, että sillä on kaikki yläluokan kentät ja metodit, ja lisäksi peritty luokka voi sisältää omia lisäkenttiä ja -metodeja.

Note
Huomio

Peritty luokka (kutsutaan myös aliluokaksi) on luokka, joka perii toisen luokan ominaisuudet. Vastaavasti kantaluokka (kutsutaan myös yläluokaksi) on luokka, josta peritään.

Perityn luokan syntaksi on seuraava:

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 }

Tässä on esimerkki konkreettisella koodilla:

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

Tässä esimerkissä Dog on johdettu luokka, joka perii Animal-kantaluokan. Dog-luokalla on pääsy Name-ominaisuuteen ja Eat-metodiin, jotka tulevat Animal-luokasta. Lisäksi se esittelee uuden metodin, Bark, joka on ominainen vain Dog-luokalle.

Kuten kaaviossa on esitetty, voi olla tilanteita, joissa luokka perii luokan, joka on jo jonkin toisen luokan alaluokka:

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

Tällaisessa tapauksessa ylimmän tason luokkaa kutsutaan yliluokaksi (Super Class). Tässä tapauksessa Animal on yliluokka. Tilannetta, jossa perintää on usealla tasolla, kutsutaan monitasoiseksi perinnäksi.

Note
Huomio

Joissakin kielissä luokka voi periä useammasta kantaluokasta, tällaista perintää kutsutaan moniperinnäksi. C#:ssa luokalla voi olla vain yksi yliluokka, joten moniperintä ei ole mahdollista C#:ssa.

1. C#:ssa, mitä avainsanaa tai symbolia käytetään johdetun luokan määrittelyyn?

2. Monitasoisessa periytymisessä, miksi kutsutaan ylimpänä olevaa luokkaa?

3. Onko monitasoinen periytyminen mahdollista C#:ssa?

question mark

C#:ssa, mitä avainsanaa tai symbolia käytetään johdetun luokan määrittelyyn?

Select the correct answer

question mark

Monitasoisessa periytymisessä, miksi kutsutaan ylimpänä olevaa luokkaa?

Select the correct answer

question mark

Onko monitasoinen periytyminen mahdollista C#:ssa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1
some-alt