精华帖 (0) :: 良好帖 (10) :: 新手帖 (6) :: 隐藏帖 (7)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-25
最后修改:2010-05-25
和多态有什么关系?你这个例子完全就是在讲继承嘛。文不对题!!!
|
|
返回顶楼 | |
发表时间:2010-05-25
刘琛颖 写道 和多态有什么关系?你这个例子完全就是在讲继承嘛。文不对题!!! ParentObj po = new ParentObj(); ArrayList list = new ArrayList(); po.doWork(list); po = new ChildObj(); po.doWork(list); ChildObj co = new ChildObj(); co.doWork(list); 子对象赋予父对象,方法调用。。。。仔细看看java的多态 |
|
返回顶楼 | |
发表时间:2010-05-25
1.关于java的多态,它讲java的多态分成静态的多态,和动态的多态,而所谓静态的多态就是只函数的重载,动态的多态就是方法的覆写。
2.静态的多态性。系统会在你编译的时候根据你调用的方法的参数列表来动态的决定调用那一个函数。 3.还有一种多态性:动态多态性。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。动态性多态的例子,比如说"一个接口,多个方法"。 |
|
返回顶楼 | |
发表时间:2010-05-25
maozj 写道 1.关于java的多态,它讲java的多态分成静态的多态,和动态的多态,而所谓静态的多态就是只函数的重载,动态的多态就是方法的覆写。
2.静态的多态性。系统会在你编译的时候根据你调用的方法的参数列表来动态的决定调用那一个函数。 3.还有一种多态性:动态多态性。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。动态性多态的例子,比如说"一个接口,多个方法"。 你确定你的代码子类覆写了超类的方法? 什么时候java override 支持协变的参数类型? |
|
返回顶楼 | |
发表时间:2010-05-25
qianhd 写道 maozj 写道 1.关于java的多态,它讲java的多态分成静态的多态,和动态的多态,而所谓静态的多态就是只函数的重载,动态的多态就是方法的覆写。
2.静态的多态性。系统会在你编译的时候根据你调用的方法的参数列表来动态的决定调用那一个函数。 3.还有一种多态性:动态多态性。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。动态性多态的例子,比如说"一个接口,多个方法"。 你确定你的代码子类覆写了超类的方法? 什么时候java override 支持协变的参数类型? 什么时候java override 支持协变的参数类型? 不是这个意思吧,从父类到子类, 仅仅从参数变宽或变窄, 来考虑对方法的调度。 你对这个代码的运行结果有何看法呢? |
|
返回顶楼 | |
发表时间:2010-05-25
zuoge85 写道 为什么会说出题的人有问题?这种题很能考察一个的水平的
水平是指SCJP考察的基本知识吧?这个更像是中国式的应试教育考题, 其实不是在玩弄知识,是在被知识玩弄。 谁见过设计时会出现父类设计的方法是针对ArrayList而子类会出现一个针对List接口的? 这种设计出现的概率与企业和程序员的垃圾程度成正比, 而一个企业把这种东西作为考题去考察一个人, 那更是有毛病。 以我之见,考察多态,主要考考这个题里的其他部分就足够了,至于这个ArrayList和List的, 我之前说了,确实是知识,但是是没有太大用处的。 如果一个类的两个方法设置成xxx(Object object)和xxx(SB sb), 这种类的设计本身就问题很大,还有考察一个人水平的价值么? |
|
返回顶楼 | |
发表时间:2010-05-25
berlou 写道 zuoge85 写道 为什么会说出题的人有问题?这种题很能考察一个的水平的
水平是指SCJP考察的基本知识吧?这个更像是中国式的应试教育考题, 其实不是在玩弄知识,是在被知识玩弄。 谁见过设计时会出现父类设计的方法是针对ArrayList而子类会出现一个针对List接口的? 这种设计出现的概率与企业和程序员的垃圾程度成正比, 而一个企业把这种东西作为考题去考察一个人, 那更是有毛病。 以我之见,考察多态,主要考考这个题里的其他部分就足够了,至于这个ArrayList和List的, 我之前说了,确实是知识,但是是没有太大用处的。 如果一个类的两个方法设置成xxx(Object object)和xxx(SB sb), 这种类的设计本身就问题很大,还有考察一个人水平的价值么? 只能说回答得很精彩~~ |
|
返回顶楼 | |
发表时间:2010-05-25
谁见过设计时会出现父类设计的方法是针对ArrayList而子类会出现一个针对List接口的?
哈哈,最喜欢这句话。 看来怎么整题的人都有,挖空心思去考验人 还是考验水平。 遇到这种面试题 就应该发飙~~~ 我是软了 |
|
返回顶楼 | |
发表时间:2010-05-25
# po = new ChildObj();
# po.doSport(map); 这个结果为什么是父类的? |
|
返回顶楼 | |
发表时间:2010-05-25
最后修改:2010-05-25
raito_yagami 写道 # po = new ChildObj();
# po.doSport(map); 这个结果为什么是父类的? 你是用父类的定义去调用的方法,如果说把父类的doSport方法换成不属于Map集合的实现类,是无法通过编译的。如果不是这样,当继承关系比较复杂,程序基本没法调试。 这种问题,编译器首先要确保安全性。 |
|
返回顶楼 | |