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(); // Исписаће: Спи...
На овај начин, апстрактна класа поставља уговор и општу логику, које наследници допуњују и конкретизују.