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

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

 

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
}