Sobes.tech
Junior — Middle

Môžete vysvetliť, čo sa rozumie pod abstraktnou triedou v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

Апстрактна класа у објектно-оријентисаном програмирању је класа која није намењена за директно креирање инстанци. Она служи као основни шаблон за друге класе и може садржати како реализоване методе, тако и апстрактне (без реализације), које морају бити обавезно преписане у наследним класама.

У C#-у, апстрактна класа се декларативно означава са кључном речју abstract. Ова класа помаже у дефинисању заједничког интерфејса и понашања за групу повезаних класа, истовремено обезбеђујући могућност делимичне реализације.

Пример:

abstract class Animal
{
    public abstract void MakeSound(); // апстрактна метода

    public void Sleep()
    {
        Console.WriteLine("Спи...");
    }
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Га-га");
    }
}

// Не може се директно креирати објекат од типа Animal:
// Animal a = new Animal(); // Грешка

Dog dog = new Dog();
dog.MakeSound(); // Исписаће: Га-га
dog.Sleep();     // Исписаће: Спи...

На овај начин, апстрактна класа поставља уговор и општу логику, које наследници допуњују и конкретизују.