функционал для родственных объектов.
- Если проектируется большая функциональная единица, которая
содержит много базового функционала.
Если нужно, чтобы все производные классы на всех уровнях наследования имели некоторую общую реализацию.
При использовании абстрактных классов, если необходимо изменить базовый функционал во всех наследниках, то достаточно поменять его в абстрактном базовом классе.
public abstract class Vehicle
{
public abstract void Move();
}
public class Car : Vehicle
{
public override void Move()
{
Console.WriteLine("Машина едет");
}
}
public class Bus : Vehicle
{
public override void Move()
{
Console.WriteLine("Автобус едет");
}
}
public class Tram : Vehicle
{
public override void Move()
{
Console.WriteLine("Трамвай едет");
}
}