Junior — Middle
Kas saaksite selgitada, mida mõistetakse abstraktse klassi all objektorienteeritud programmeerimises?
sobes.tech AI
Vastus AI-lt
Objektorienteeritud programmeerimises on abstraktne klass klass, mida ei ole mõeldud otse eksemplaride loomiseks. See toimib kui alusmall teistele klassidele ning võib sisaldada nii rakendatud meetodeid kui ka abstraktseid (ilma rakenduseta) meetodeid, mida tuleb pärilikes klassides kohustuslikult üle kirjutada.
C#-s deklareeritakse abstraktne klass sõnaga abstract. See klass aitab määratleda ühise liidese ja käitumise seotud klasside rühmale ning võimaldab osalist rakendust.
Näide:
abstract class Animal
{
public abstract void MakeSound(); // abstraktne meetod
public void Sleep()
{
Console.WriteLine("Magab...");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Haug-haug");
}
}
// Ei ole võimalik otse luua Animal objekti:
// Animal a = new Animal(); // Viga
Dog dog = new Dog();
dog.MakeSound(); // Väljund: Haug-haug
dog.Sleep(); // Väljund: Magab...
Seega määrab abstraktne klass lepingu ja üldise loogika, mida pärilased klassid täiendavad ja konkretiseerivad.