Junior — Middle
Ի՞նչ է տարբերությունը ապակառուցված դասի և ինտերֆեյսի օգտագործման միջև դասերի պայմանների սահմանման ժամանակ։
sobes.tech AI
Պատասխան AI-ից
C#-ի մեջ աբստրակտ դասը և ինտերֆեյսը ծառայում են պայմանագրերի սահմանման համար, բայց ունեն հիմնական տարբերություններ՝
- Աբստրակտ դաս կարող է պարունակել մեթոդների, դաշտերի, կոնստրուկտորների և հատկությունների իրագործումներ։ Այն օգտագործվում է, երբ անհրաժեշտ է սահմանել հիմնական իրագործում և ընդհանուր գործառույթներ ժառանգների համար։
- Ինտերֆեյս միայն մեթոդների, հատկությունների և իրադարձությունների ստորագրություններն է սահմանում առանց իրագործման (C# 8.0-ով մինչև; C# 8.0-ից սկսած, ինտերֆեյսները կարող են պարունակել նախնական իրագործումներ):
Բացի այդ, դասը կարող է ժառանգել միայն մեկ աբստրակտ դասից, բայց կարող է իրագործել մի քանի ինտերֆեյսներ։
Օրինակ՝
abstract class Animal
{
public abstract void MakeSound();
public void Sleep() { Console.WriteLine("Ինքնամփոփում"); }
}
interface IFlyable
{
void Fly();
}
class Bird : Animal, IFlyable
{
public override void MakeSound() { Console.WriteLine("Չիչք"); }
public void Fly() { Console.WriteLine("Ուժեղ թռչում"); }
}
Այսպիսով, աբստրակտ դասը հարմար է ընդհանուր հիմնական վարքագծի համար, իսկ ինտերֆեյսը՝ տարբեր դասարանների կողմից իրականացվող հնարավորությունների հավաքածու սահմանելու համար։