public class InterfaceTest<T extends Object>
{
public T property;
public static void main(String[] args)
{
InterfaceTest<In> in = new InterfaceTest<In>();
B b = new B();
in.property = b;
In i = b;
A a = b;
Object o = b;
System.out.println(i instanceof Object);
System.out.println(o instanceof In);
System.out.println(a instanceof In);
}
}
interface In
{
}
abstract class A implements In
{
}
class B extends A
{
public void method()
{
}
}
打印結果:
true
true
true
可以從3方面證明。
1.首先用<In>替換掉<T extends Object>是編譯不會報錯,那麼說明了interface的確繼承了Object。
2.當將i指向b指向的對象後,再用IDE的時候,會聯想出i的方法與Object方法一致。
3.從i instanceof Object,o instanceof In打印出true的結果看來In接口與Object存在繼承或實現的關係。