Почему множественное наследование не поддерживается на большей части языка программирования?
Я мог действительно использовать эту функцию для разработки другого расположения приложения?
Множественное наследование полезно во многих ситуациях как разработчик, но в значительной степени увеличивает сложность языка, что усложняет жизнь как разработчикам компиляторов, так и программистам.
Одна проблема возникает, когда два родительских класса имеют элементы данных или методы с одинаковыми именами. Трудно решить, на что ссылается подкласс.
Другой случай возникает, когда два родительских класса наследуются от одного и того же базового класса, образуя «ромбовидный» образец в иерархии наследования.
Порядок, в котором необходимо указать инициализацию / разработку родительских классов - иногда это может приводить к изменению поведения при изменении порядка наследования - что-то может застать разработчиков врасплох.
Некоторые языки поддерживают ссылку на «super» или эквивалент, которая относится к атрибуту базового класса для этого объекта. Это становится трудно поддерживать на языке с множественным наследованием.
Некоторые языки пытаются предоставить автоматическую объектно-реляционную модель, чтобы объекты можно было сделать постоянными с помощью обычной RDMS. Это сопоставление сложно в лучшие времена (это было описано как «Вьетнамская война» разработки программного обеспечения), но это намного сложнее, если поддерживается множественное наследование.
Одна из причин не поддерживать это - неоднозначность разрешения метода.
http://en.wikipedia.org/wiki/Diamond_problem
Однако я не уверен, что вы имеете в виду под «большинством» языков программирования. Многие из тех, что используются сегодня, поддерживают его напрямую (C ++, Python, Perl, OCaml) или имеют механизм для аналогичной функциональности (на ум приходят Ruby и Scala).