class A
{
public A ()
{
}
}
class B extends A
{
public B ()
{
}
}public class MainTest {
public void put(A a)
{
System.out.println("A puted");
}
public void put(B b)
{
System.out.println("B puted");
}
public static void main(String[] args) {
A a1=new A();
A a2=new B();
B b=new B();
MainTest test =new MainTest();
test.put(a1);
test.put(a2);
test.put(b);
}}结果是:
A puted
A puted
B puted在A a2= new B();这里为什么输出的是A puted 而不是采用后期绑定的方式唤起B呢?
{
public A ()
{
}
}
class B extends A
{
public B ()
{
}
}public class MainTest {
public void put(A a)
{
System.out.println("A puted");
}
public void put(B b)
{
System.out.println("B puted");
}
public static void main(String[] args) {
A a1=new A();
A a2=new B();
B b=new B();
MainTest test =new MainTest();
test.put(a1);
test.put(a2);
test.put(b);
}}结果是:
A puted
A puted
B puted在A a2= new B();这里为什么输出的是A puted 而不是采用后期绑定的方式唤起B呢?
楼主【crazyhz】截止到2008-07-30 10:17:15的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=crazyhz
System.out.println("A print");
}
}class B extends A { @Override
public void print() {
System.out.println("B print");
}
}public class Main { public static void main(String[] args) {
A a1 = new A();
A a2 = new B();//多态,动态绑定
B b = new B();
a1.print();
a2.print();
b.print();
}
}
http://topic.csdn.net/u/20080724/11/578c066b-a4fa-4d53-99b7-af61b539fe00.html