谁给实例解释下动态绑定的问题
刚学java,不太明白他的动态绑定是怎么回事?谁给用实例解释下? 问题点数:4、回复次数:7Top
1 楼skymouse2002(虾米猪猪)回复于 2006-03-17 17:49:19 得分 0
自己顶先!!!Top
2 楼skymouse2002(虾米猪猪)回复于 2006-03-17 19:54:56 得分 0
晕!怎么没人?问题太简单了 or 还是分太少?Top
3 楼TONYBLARED(奔放的犀牛)回复于 2006-03-18 16:08:49 得分 4
package com.pss.test2;
import com.pss.util.prints.Conica;
/**
* @author George
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
class Father2{
public void print(){
Conica.pl("Father.print()");
}
}
class Son extends Father2{
public void print(){
Conica.pl("Son.print()");
}
}
public class Acceptor {
public static void main(String[] args){
Father2 mafia;
mafia = new Father2();
mafia.print();
mafia = new Son();
mafia.print();
}
}
楼主先看看这段代码,在不运行之前看看输出什么。
如果你了解了动态绑定之后,就会理解为什么这段代码输出的是Son.print()了。
你看,mafia在编译时候表明是Father2引用,调用的是Father2的方法。但是在运行的时候,它却是调用Father2或者Son的方法,这就是动态绑定,在运行的时候bind某个方法。Top
4 楼skymouse2002(虾米猪猪)回复于 2006-03-22 14:29:14 得分 0
谢谢,给分了,注意收Top
5 楼Dan1980()回复于 2006-03-22 15:19:22 得分 0
楼主忒小气了,4分怎么给得出手啊,哈哈~~~Top
6 楼treeroot(旗鲁特)回复于 2006-03-22 15:26:04 得分 0
不用讨论,java中都是动态绑定!
只有c++才有静态绑定Top
7 楼cleansunshing(努力学习中)回复于 2006-03-22 16:17:57 得分 0
晕!怎么没人?问题太简单了 or 还是分太少?
=========================================
all right!Top




