Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 1.73 KB

README.md

File metadata and controls

23 lines (16 loc) · 1.73 KB

Множественное наследование

Множественное наследование создает больше проблем, чем решает их. Интерфейсы в виде абстрактных базовых классов в C++ пример благоразумного использования множественного наследования.

Часто вам нужна композиция, когда вы думаете, что вам нужно множественное наследование.

В Java были введены интерфейсы, чтобы заменить множественное наследование.

В C++ можно унаследовать интерфейс и имплементацию вместе (public inheritance) либо можно унаследовать только имплементацию (private inheritance). В Java можно унаследовать только итерфейс без имплементации.

Абстрактные классы

Определение абстрактного класса в стандарте C++, 13.4.2:

Абстрактный класс это класс который может быть использован только как базовый класс для другого класса; не может быть создано объектов абстрактного класса, за исключением подобъектов производных классов. Класс является абстрактным, если он имеет хотя бы одну чистую виртуальную функцию.