Абстрактний клас
1. Клас від якого не можна створити екземпляр (об'єкт)
2. Приховує деталі залишаючи лише важливу інформацію
3. Абстрактні методи мають обов'язково реалізовуватися в нащадках
4. Абстрактний клас може містити реалізовані методи
5. Якщо хоч один метод є абстрактним то і класу треба дописати abstract
6. Порівняння з інтерфейсом
abstract class Figure
{
public abstract float Perimeter();
public abstract float Area();
}
class Rectangle : Figure
{
public float Width { get; set; }
public float Height { get; set; }
public Rectangle(float width, float height)
{
this.Width = width;
this.Height = height;
}
// забов'язані релізувати
public override float Perimeter()
{
return Width * 2 + Height * 2;
}
public override float Area()
{
return Width * Height;
}
}
static void Main(string[] args)
{
//Figure a = new Figure(); - не можемо визвати конструктор
Figure r1 = new Rectangle(10,20); // або Rectangle r1
Console.WriteLine(r1.Perimeter()); // 60
}