哪个类的对象是?

时间:2017-09-20 05:41:44

标签: java

这里我创建一个对象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();  
    }

}

1 个答案:

答案 0 :(得分:0)

a是类B的一个对象,它从类A扩展而来,但是您将它存储在super-type A中,这样您就无法访问foo()方法,称之为有两种不同的方式:

=> 强制转换为B

A a = new B();
((B)a).foo();  

=> 存储在B类型

B a = new B();
a.foo();