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呢?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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
      

  2.   

    class A {    public void print() {
            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();
        }

      

  3.   

    看我写的一个帖子:
    http://topic.csdn.net/u/20080724/11/578c066b-a4fa-4d53-99b7-af61b539fe00.html