System.out.println(a1.show(b)); //A and A
System.out.println(a1.show(c)); //A and A
System.out.println(a1.show(d)); //A and D
这三句是普通的方法调用调用类A中的方法
System.out.println(a2.show(b)); //B and A
System.out.println(a2.show(c)); //B and A
System.out.println(a2.show(d)); //A and D
这三句是有多态存在的,所以符合多态的条件,编译看父类,运行看子类编译的时候看的是父类的,实际运行的System.out.println(a2.show(b)); //B and A
System.out.println(a2.show(c)); //B and A
这昂据实际运行的是类B中的 public String show(A obj){
return ("B and A");
} 方法会输出B and A
System.out.println(a2.show(d)); //A and D因为子类没有show(d)所以实际执行的是父类自己的show(d)方法
输出A and D
System.out.println(b.show(b)); //B and B
System.out.println(b.show(c)); //B and B
System.out.println(b.show(d));
后边三句又是普通的方法调用
|