Junior — Middle
Obyektga yo'naltirilgan dasturlashda abstrakt sinf va interfeys o'rtasidagi asosiy farq nima?
sobes.tech AI
AIdan javob
Asosiy farq abstrakt sinf va interfeys orasida shundaki, abstrakt sinf metodlar va holatlarni (maydonlarni) o'z ichiga olishi mumkin, interfeys esa faqat metodlarning imzolarini belgilaydi, hech qanday implementatsiya bilan (C# 8.0 gacha). Abstrakt sinf meros oluvchilar uchun asosiy implementatsiya va umumiy funksionallikni belgilash uchun ishlatiladi, interfeys esa sinflar bajarishi kerak bo'lgan shartnoma sifatida xizmat qiladi, ular qanday meros bo'lishidan qat'i nazar.
Misol:
// Abstrakt sinf
public abstract class Animal {
public void Eat() {
Console.WriteLine("Yemak")
}
public abstract void MakeSound();
}
// Interfeys
public interface IMovable {
void Move();
}
// Abstrakt sinf va interfeysni meros olgan sinf
public class Dog : Animal, IMovable {
public override void MakeSound() {
Console.WriteLine("Hovuch")
}
public void Move() {
Console.WriteLine("Yugurish")
}
}