2004vm M. Cutumisu, C. Chan, P. Lu and D. Szafron, MCI-Java: A Modified Java Virtual Machine Approach to Multiple Code Inheritance, Usenix 3rd Virtual Machine Research and Technology Symposium (VM '04), May 2004, San Jose, USA, pp. 13-28, abstract or pdf.
Abstract:

Java has multiple inheritance of interfaces, but only single inheritance of code via classes. This situation results in duplicated code in Java library classes and application code. We describe a generalization to the Java language syntax and the Java Virtual Machine (JVM) to support multiple inheritance of code, called MCI-Java. Our approach places multiply-inherited code in a new language construct called an implementation, which lies between an interface and a class in the inheritance hierarchy. MCI-Java does not support multiply-inherited data, which can cause modeling and performance problems. The MCI-Java extension is implemented by making minimal changes to the Java syntax, small changes to a compiler (IBM Jikes), and modest localized changes to a JVM (SUN JDK 1.2.2). The JVM changes result in no measurable performance overhead in real applications.