Cписок языков с
Multiple inheritance довольно обширен. И там есть упомянутый уже C++.
Основные проблемы связанные с множественным наследованием заключаются в совпадении имен полей и методов. Одна из таких известна как The Diamond Problem. Если просто:
-Class A содержит метод do()
-Class B & Class C наследуются от A и переопределяют do()
-Class D наследуется от B & C
Что мы получим здесь: new D().do()?
Вот на этот счет Java & С# предлагают концепцию множественного наследования НО от интерфейсов(+вводится новое ключевое слово interface). Конфликтов уже нет, так как мы реализуем интерфейсы для каждого отдельного класса.
А вот в С++ как такового понятия интерфейса нет(и ключевого слова тоже нет). Его приходится уже "эмулировать" абстрактным классом. Подробнее
здесь
P/s реализация поддержки концепции множественного наследования зависит только от языка, и отдана она на откуп создателям. Одни вот посчитали, что количество проблем от множественного наследования будет больше, чем это поможет решить задач. И не сделали этого в своем языке.