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