class A
{
public A(){
System.out.println("Class -- A ");
}
public void f(){
System.out.println("Method --- A");
}
}
class B extends A
{
public B(){
System.out.println("Class -- B");
}
public void f(){
System.out.println("Method -- B");
}
}
public class Hello
{
public static void main(String[] args)
{
A a = new B();
a.f();
}
}
输出结果为:
Class -- A
Class -- B
Method -- B
根据结果可以得出 先创建一个A对象的实例,之后再创建B的对象实例。之后方法被覆盖,调用B类中的方法。
可以这么你理解: