public interface A {
class Aclass {
int constants = 100;
public void display()
{
System.out.println("Inside A");
}
}
public void display();
}
public interface B {
class Bclass {
int constants = 130;
public void display() {
System.out.println("Inside B");
}
}
public void display();
}
public class MultipleInheritance implements A, B {
@Override
public void display() {
A.Aclass a = new A.Aclass();
System.out.println(a.constants);
B.Bclass b = new B.Bclass();
System.out.println(b.constants);
}
public static void main(String args[]) {
new MultipleInheritance().display();
}
}
虽然它是通过接口(interface)而不是通过一个你没有继承任何东西的上下文中的具体类,但它仍然不是代码重用,即使维护内部类会很困难,但它仍然充当多重继承请澄清如果可能,使用内存表示。
最佳答案
让我们回顾一下您的代码中实际包含的内容。在这里声明接口(interface) A
和嵌套类 AClass
:
public interface A {
class Aclass {
int constants = 100;
public void display()
{
System.out.println("Inside A");
}
}
public void display();
}
在这里你声明接口(interface)B
和一个嵌套类Bclass
:
public interface B {
class Bclass {
int constants = 130;
public void display() {
System.out.println("Inside B");
}
}
public void display();
}
在这里实例化Aclass
:
A.Aclass a = new A.Aclass();
在这里你实例化Bclass
:
B.Bclass b = new B.Bclass();
现在请注意,Aclass
和Bclass
是两个完全不相关的类。这两个共享的唯一共同父类(super class)型是 Object
。
很明显,如果您甚至不尝试从两种类型继承,就谈不上多重继承。
在这里你至少尝试涉及两个父类(super class)型:
public class MultipleInheritance implements A, B { ... }
但是你永远不会在你的代码中涉及这个类型,它只是 main
方法的一个容器。这种类型虽然实现了两个接口(interface),但不会从它们继承任何东西:它继承了两种不同的类型(Aclass
、Bclass
)。另请注意,即使它们具有相同的名称,仍然不会存在多重继承。只会发生命名冲突。
多重继承严格来说是关于方法实现的继承,显然你无法在 Java 中实现这一点。
关于java - 它是多重继承吗?如果不是,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18631367/