这里我创建一个对象a.foo(); 哪个类的对象是?
class A {
int b;
}
class B extends A {
public void foo() { }
public static void main(String [] args){
A a = new B();
a.foo();
}
}
答案 0 :(得分:0)
a是类B
的一个对象,它从类A
扩展而来,但是您将它存储在super-type
A
中,这样您就无法访问foo()
方法,称之为有两种不同的方式:
=> 强制转换为B
A a = new B();
((B)a).foo();
=> 存储在B
类型
B a = new B();
a.foo();