最新评论
BenBen789 2010-07-11 18:43
"面试官既然出了这道题,说明他在工作中碰到过类似的问题,"
这一句话,我不是完全同意。
除非你在招人的时候,你出的题是你自己琢磨的。
但真实的面试中,很多不负责的面试题都是东拉本找的。从面试题中,我们并不能完全看出考官的真实目的。
炭炭 2010-07-11 13:25
答案很简单:
当我设计类的时候,防止别人对非 vitual 和 abstract 的方法进行复写的时候,而保证必须执行基类方法的时候。
Alex He 2010-07-11 11:44
[quote]johnsir:
[quote]HCOONa:
不如在B中直接加一个新方法,
我觉得你这个是颠倒了顺序了,先有的A才有的B啊,A中如果没有这个方法,B中怎么用new标记啊?[/quote]
你说的很对阿!
解决问题的方案会很多,关键在这个问题上,我们应该怎么样思考面试官提出的问题,呵呵。[/quote]
在设计的时候是可以新增新方法的,但是如果在软件的后期你加新方法,会产生多少连锁反应,要修改多少代码
johnsir 2010-07-11 10:37
[quote]HCOONa:
@johnsir
主要是由那个问题引出了一个新的更基本的问题,也就是new隐藏方法的使用时机,╮(╯▽╰)╭,方便的话希望你去看看我新发的那篇博文[/quote]
好啊,一定去拜读,^_^!!
HCOONa 2010-07-11 10:36
@johnsir
主要是由那个问题引出了一个新的更基本的问题,也就是new隐藏方法的使用时机,╮(╯▽╰)╭,方便的话希望你去看看我新发的那篇博文
johnsir 2010-07-11 10:30
[quote]HCOONa:
不如在B中直接加一个新方法,
我觉得你这个是颠倒了顺序了,先有的A才有的B啊,A中如果没有这个方法,B中怎么用new标记啊?[/quote]
你说的很对阿!
解决问题的方案会很多,关键在这个问题上,我们应该怎么样思考面试官提出的问题,呵呵。
被偷De贼 2010-07-11 10:24
答:首先执行结果分别是b类方法,a类方法。因为使用了new修饰符隐藏了基类方法并且独立于基类方法,使得b类方法可以实现不同的业务逻辑,这就造成二者方法的结果不同。
二:应该根据具体需求来决定调用哪个方法,
当某个业务处理已经在基类(A类)实现,调用基类方法。
((A)b).Dosomething()
另一个种写法:
A a =new B();
a.xxxx();
================
应用场景上LZ的举例更直观~~!!
面试态度上个人认为:
应以积极的心态去面对,不管面试管出何等题目对面试者来说都是一种考验,面试题目都是根据公司所需人才的要求来制定的包括许多方面,技术、品德、沟通、思维等等,在这种情况下也许面试者技术很NB,但是其它方面确不符合面试公司的用人要求,这个只能说明面试者某些方面不符合公司的要求,回来要认真总结自己的不足。当然不排除确实有很扯淡的面试管~~!!
HCOONa 2010-07-11 10:18
不如在B中直接加一个新方法,
我觉得你这个是颠倒了顺序了,先有的A才有的B啊,A中如果没有这个方法,B中怎么用new标记啊?

