Объектно-ориентированное программирование должно быть одним из самых мощных и масштабируемых способов разработки. Объектно-ориентированное программирование (ОП) — это методология программирования, основанная на объектах, где эти объекты организованы в классы, что позволяет группировать отдельные объекты вместе в соответствии с техтермами.

Одним из основных факторов, влияющих на объектно-ориентированное программирование, является абстракция. Это ключ к пониманию наследования, которое, в свою очередь, также является свойством объектно-ориентированного программирования.

Простой пример абстракции в игре: в ситуации, когда у вас есть два класса: класс легкового автомобиля и класс грузовика, оба класса действительно обязаны иметь схожие атрибуты, когда, возможно, участвует дилерский центр и выставлены на продажу как грузовики, так и автомобили. Вместо утомительного подхода к кодированию обоих классов с атрибутами, которые противоречат тому, что означает «СУХОЙ»… повторение, лучшим подходом будет абстракция.

В этом случае абстракция будет включать создание класса Vehicle, который будет иметь атрибуты как легковых, так и грузовых автомобилей, поскольку оба объекта считаются транспортными средствами. Большая часть кода все еще будет повторяться, потому что на этот раз у нас будут классы автомобилей и грузовиков, расширяющие класс Vehicle. Мы еще не совсем закончили, до этого момента можно создавать объекты с помощью класса Vehicle, что действительно упрощает работу, однако создаваемые экземпляры предназначены для автомобилей или грузовиков. Теперь у нас есть объекты транспортных средств, которые не зависят от типа создаваемого транспортного средства. Помните, что легковые и грузовые автомобили также могут иметь разные значения атрибутов класса, например цены.

Проблема сводится к тому, что класс транспортного средства является Абстрактным базовым классом. Это означает, что Vehicle предназначен только для наследования. Транспортное средство должно было бы демонстрировать абстрактный метод или виртуальный метод, такой как Vehicle_category(), который запрещал бы создание экземпляра транспортного средства и, в свою очередь, объявлял бы категорию транспортного средства. Виртуальный метод также должен быть реализован в дочерних классах, в данном случае автомобиль и грузовик, с объявлением категории, что позволит создавать экземпляры конкретных объектов.

Это, в свою очередь, уменьшит повторение кода, усилит наследование и абстракцию по отношению к объектно-ориентированному программированию. Подробнее об объектно-ориентированном программировании можно прочитать здесь.