cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

JAVA基础(一):多态(overloading & overridding)的分析

< 示例1>

题目1

答案

 

<练习>

题目

答案与分析


< 示例2>

哪里会出错

 

答案


<示例3>

题目

 

答案


分析

多态:

Java 中的函数,除了声明外 final 的外,都是后期绑定。

所谓绑定是建立“函数调用”和“函数本体”的关联。、

所谓的后期绑定是指执行时根据对象类别而进行

 

多态仅仅对函数而言,不对变量而言;

变量的访问依赖于编译期引用指向的类型;

方法的访问依赖于执行期对象的类型;

 

向上转型后,调用某个函数,若 derived class overriding 了该函数,则会调用该 derived class 中的函数,否则会调用 base class 中的函数。

 

向上转型后,只能调用 base class 中被 derived class overriding 的函数,不能调用 derived class 中 extend 函数。

即向上转型后,只能调用 base class 中的方法,不能调用 derived class 中的扩展方法 

补记:
编译器自始自终对引用到底指向哪个型别无能无力,其认为指向声明的型别,这个是编译期。
而java中除了final修饰的方法外,所有函数都是由“method-cal“的late binding机制,在执行期判知对象的型别,并调用相关的函数,这是执行期。

这个又如何解释呢

答案
分析


--------取于 崔毅 之《java编程指南》《java编程思想》学习笔记l

posted on 2006-10-11 17:10 crazycy 阅读(2914) 评论(6)  编辑  收藏 所属分类: JavaSE语言

评论

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

我感觉只需要学习过SCJP课程的人,做这几道题都是非常轻松的。
2006-10-13 07:04 | Supergoal

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

@Supergoal
呵呵,学过SCJP的人还是不占大多数的,毕竟证书是贵的。
有时很多实践之后,回头感受这个,往往有一种新的感觉。
况且实践相关的东西总比被别人教来的好些。
还有阿,这些东西已经不止一次的看过,上次悉心读java编程指南时记录的许多笔记,现在回头看来依然很有回味。


介于在这个地方提到证书,那我也多说一句,曾领略过很多地方的培训中心就是题海战术,呵呵,不希望由此带来证书价值的认可。
2006-10-13 10:48 | crazycy

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

呵呵,小伙越来越强、越来越踏实了~受教不少。
2006-10-13 11:51 | coffee

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

不用现金抵押,只要你够实力,www.mylinux.com.cn项目投标系统为您提供完善的软件外包服务.
2006-10-13 13:59 | 1

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

留个脚印
2006-12-04 22:09 | INSOMNIA

# re: JAVA基础(一):多态(overloading & overridding)的分析  回复  更多评论   

写的很好 找回了记忆~
谢谢
2008-10-19 01:31 | redcoatjk