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

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
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
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(); } }
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
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(); } }
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.
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?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.04
Johdetut 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.

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
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
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(); } }
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
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(); } }
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.
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?
Kiitos palautteestasi!