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

2075 / C# / Класи / Абстрактний клас vs інтерфейс

 

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

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

Інтерфейс

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

abstract class BaseFigure {
  public abstract float Perimeter ();
  public abstract float Area ();
}
interface IFigure {
  float Perimeter ();
  float Area ();
}
public, private, protected
public
Дозволяється реалізація методів Без реалізації методів
Швидший Повільніший
Не можна створювати об'єкт Не можна створювати об'єкт
Може містити змінні, константи та
статичні змінні
Не може мати змінних
Можна додавати властивості Можна додавати властивості
Методи можуть бути і не абстрактними Усі методи абстрактні
Може мати конструктор Не може мати конструктор