Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada abstrakt sinif və interfeys arasındakı əsas fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Əsas fərq abstrakt sinif və interfeys arasında odur ki, abstrakt sinif metodların və vəziyyətin (sahələr) daxil edə bilər, interfeys isə yalnız metodların imzalarını təyin edir və implementasiya olmadan (C# 8.0-ə qədər). Abstrakt sinif, irsi alanlar üçün əsas implementasiya və ümumi funksionallıq təyin etmək üçün istifadə olunur, interfeys isə sinflərin yerinə yetirməli olduğu müqaviləni müəyyən edir, onların irsindən asılı olmayaraq.

Nümunə:

// Abstrakt sinif
public abstract class Animal {
    public void Eat() {
        Console.WriteLine("Yemək");
    }
    public abstract void MakeSound();
}

// Interfeys
public interface IMovable {
    void Move();
}

// Abstrakt sinfi miras alan və interfeysi tətbiq edən sinif
public class Dog : Animal, IMovable {
    public override void MakeSound() {
        Console.WriteLine("Havlama");
    }
    public void Move() {
        Console.WriteLine("Qaçmaq");
    }
}