Junior — Middle
ობიექტზე ორიენტირებული პროგრამირების სფეროში აბსტრაქტული კლასი და ინტერფეისის ძირითადი განსხვავება რა არის?
sobes.tech AI
პასუხი AI-სგან
მთავარი განსხვავება აბსტრაქტული კლასი და ინტერფეისის შორის არის ის, რომ აბსტრაქტული კლასი შეიძლება შეიცავდეს მეთოდების რეალიზაციას და მდგომარეობას (მინდვრებს), მაშინ როდესაც ინტერფეისი მხოლოდ მეთოდების ხელმოწერებს განსაზღვრავს რეალიზაციის გარეშე (C# 8.0-მდე). აბსტრაქტული კლასი გამოიყენება, როდესაც საჭიროა ძირითადი რეალიზაციის და საერთო ფუნქციონალობის განსაზღვრა მემკვიდრეებისთვის, ხოლო ინტერფეისი — კონტრაქტის განსაზღვრისთვის, რომელიც კლასებმა უნდა შეასრულონ, независимо მათი იერარქიიდან.
მაგალითი:
// აბსტრაქტული კლასი
public abstract class Animal {
public void Eat() {
Console.WriteLine("ჭამა");
}
public abstract void MakeSound();
}
// ინტერფეისი
public interface IMovable {
void Move();
}
// კლასი, რომელიც მემკვიდრეობს აბსტრაქტულ კლასს და ახორციელებს ინტერფეისს
public class Dog : Animal, IMovable {
public override void MakeSound() {
Console.WriteLine("ბაყაყი");
}
public void Move() {
Console.WriteLine("ჩქარ სირბილი");
}
}