新手提问,JAVA的一个函数调用绑定问题

时间:2008-08-25 08:00:56   来源:论坛整理  作者:  编辑:chinaitzhe
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呢?
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【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
网友回复:多态原理吧,up
网友回复:这里没有涉及到多态和动态绑定 .只是参数传递.
动态绑定指的是运行的时候根据所引用对象的具体类型去调用响应的方法.
网友回复:
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/







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 楼 ZangXT 的回复:
这里没有涉及到多态和动态绑定 .只是参数传递.
动态绑定指的是运行的时候根据所引用对象的具体类型去调用响应的方法.

你给的例子我看了,还是不是很清楚你说的“根据所引用对象的具体类型去调用响应的方法.” 能再解释一下吗,谢谢了。
网友回复:看我写的一个帖子:
http://topic.csdn.net/u/20080724/11/578c066b-a4fa-4d53-99b7-af61b539fe00.html
网友回复:学习
网友回复:
引用 3 楼 ZangXT 的回复:
这里没有涉及到多态和动态绑定 .只是参数传递.
动态绑定指的是运行的时候根据所引用对象的具体类型去调用响应的方法.

网友回复:这里没有涉及到多态和动态绑定 .只是参数传递.
动态绑定指的是运行的时候根据所引用对象的具体类型去调用响应的方法.
关键字:绑定,函数,新手,问题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面