java中接口与Object的关系
public class Test{
public static void main(String[] args) {
A a = new C();
B b = new B();
Test test =(Test) a;
//Test test1 = (Test) b;
Object object = a;
}
}
/**
* 定义接口A
*/
interface A{
public int f();
}
/**
*类B
*/
class B{
}
/**
*类c继承了接口A
*/
class C implements A{
@Override
public int f() {
// TODO Auto-generated method stub
return 0;
}
}
问题一:
为什么Object object = a;是正确的?
a声明的是接口,接口类型能上转型成Object类型吗?接口是Object的子类吗?
问题二:
Test test =(Test) a;
Test test1 = (Test) b;
为什么第一句没错,而第二句会出错呢?两句有什么区别吗?