class c {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
B b=new B();
A a=b;
callA(a);
callA(new B());
}
public static void callA(A a)
{
a.func1();//为什么执行的结果是,类B中的func1,而不是类A中的func1?
a.func2();//为什么结果是类A中的func2
//我认为,既然把类B的实例赋予了父类的实例,就应该执行类B中的函数,这里实在觉得有点搞不懂。
}
}
class A
{
public void func1()
{
System.out.println("A func1 is calling!");
}
public void func2()
{
System.out.println("A func2 is calling!");
}
}
class B extends A
{
public void func1()
{
System.out.println("B func1 is calling!");
}
public void func3()
{
System.out.println("B func3 is calling!");
}
}