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存在继承或实现的关系。