- 5
- 0
- 约5.7千字
- 约 5页
- 2017-06-07 发布于湖北
- 举报
Java 的动态绑定与双分派
Java 的动态绑定
所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的
方法。java 继承体系中的覆盖就是动态绑定的,看一下如下的代码:
1. class Father {
2. public void method(){
3. System.out.println(This is Fathers method);
4. }
5. }
6.
7. class Son1 extends Father{
8. public void method(){
9. System.out.println(This is Son1s method);
10. }
11. }
12.
13. class Son2 extends Father{
14. public void method(){
15. System.out.println(This is Son2s method);
16. }
17. }
18.
19. public class Test {
20. public static void main(String[] args){
21. Father s1 = new Son1();
22. s1.method();
23.
24. Father s2 = new Son2();
25. s2.method();
26. }
27. }
运行结果如下:
This is Son1s method
This is Son2s method
通过运行结果可以看到 ,尽管我们引用的类型是Father 类型的,但是运行时却是调用的它实际类型(也就是 Son1 和
Son2 )的方法,这就是动态绑定。在java 语言中,继承中的覆盖就是是动态绑定的,当我们用父类引用实例化子类时,会
根据引用的实际类型调用相应的方法。
1 / 5
java 的静态绑定
相对于动态绑定,静态绑定就是指在编译期就已经确定执行哪一个方法。在java 中,方法的重载(方法名相同而参数
不同)就是静态绑定的,重载时,执行哪一个方法在编译期就已经确定下来了。看一下代码:
1. class Father {}
2. class Son1 extends Father{}
3. class Son2 extends Father{}
4.
5. class Execute {
6. public void method(Father father){
7. System.out.println(This is Fathers method);
8. }
9.
10. public void method(Son1 son){
11. System.out.println(This is Son1s method);
12. }
13.
14. public void method(Son2 son){
15. System.out.println(This is Son2s method);
16. }
17. }
18.
19. public class Test {
20. public static void main(String[] args){
21. Father father = new Father();
您可能关注的文档
- internet第05讲2搜索引擎.ppt
- 很全的图文CAD课件第2篇.ppt
- 第八讲 码分多址(CDMA)移动通信系统.ppt
- Internet与网页设计2.ppt
- Intouch组态软件opclink驱动配置与测试方法.doc
- 第八讲 嵌入式系统设计.ppt
- IPHONE4,4S和IPHONE5详细区别(有图片)对比总结.doc
- 第八讲 数据资料.ppt
- 第八讲 CDMA移动通信系统(一).ppt
- IPv6终端技术及产品现状.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2025高中英语教师课程标准考试模拟试卷及参考答案.docx VIP
- 第12课 绿意再生课件-赣美版(2024)初中美术七年级下册.pptx VIP
- 2025年青岛西海岸新区自主招生化学试题及答案.docx VIP
- 2024-2025学年江苏卫生健康职业学院单招《英语》考前冲刺练习(真题汇编)附答案详解.docx VIP
- GJ B 2446-2-2013 J30系列微矩形电连接器详细规范.pdf VIP
- 2025年内蒙古中考物理试卷及答案.docx VIP
- 第11课+传递绿色理念+课件+2024—2025学年赣美版(2024)+初中美术七年级下册.pptx VIP
- 2025年江苏卫生健康职业学院单招《数学》真题带答案详解(模拟题).docx VIP
- 2023年广东省中考道德与法治试卷真题及答案详解.pdf
- 相变的软模理论.ppt VIP
原创力文档

文档评论(0)