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("Табдил кардан");
}
}