Головна‎ > ‎C#‎ > ‎Класи‎ > ‎

Абстрактний клас vs інтерфейс


Абстрактний клас

Приховує непотрібні деталі


Інтерфейс

Інтерфейс взаємодії між класами

abstract class
 BaseFigure {
     public abstract float Perimeter();
     public abstract float Area();
}

interface
 IFigure 
     float Perimeter(); 
     float Area();
}
 
public, private, protected
 
public

Дозволяється реалізація методів

Без реалізації методів

Швидший

Повільніший

Не можна створювати об'єкт

Не можна створювати об'єкт
 
Може містити змінні, константи та 
статичні змінні
 
Не може мати змінних
 
Можна додавати властивості

 
Можна додавати властивості

 
Методи можуть бути і не абстрактними

 
Усі методи абстрактні
 
Може мати конструктор
 
Не може мати конструктор