【发布时间】:2013-09-05 08:28:05
【问题描述】:
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();
}
}
虽然它是通过接口而不是通过上下文中的具体类,你没有继承任何东西,但它仍然不是代码重用,即使维护内部类很困难,但它仍然充当多重继承,请清除如果可能的话,使用内存表示。
【问题讨论】:
-
那里没有多重继承。所以不是。
-
但是一个接口仍然像一个抽象类,一切都是最终静态的(只是语法不同但行为相同)。请这是面试官的一个非常热门的问题。
-
您可能需要查看 Java 文档中的 "Abstract Classes versus Interfaces" 和 "Interfaces and Multiple Inheritance" 部分。
-
好的,我们只有声明来告诉类它在实现接口的方法时应该遵守什么,并且仍然是只有方法声明的抽象类。