开发人员Java面试题:Java是否支持多重继承

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:29 我要评论(0)

面试开发人员不仅辛苦而且乏味,当然也有一些极好的参考,但是最后录用与否你来决定。为了快速了解他们的编程能力,我已经想好要问他们Java是否支持多 重继承的问题。

英文原文:Codemonkeyism, 编译:刘志军

招聘和面试对开发经理来说是一个无尽头的工作,虽然有时你可以从HR这边获得一些帮助,但是 最后还是得由你来拍板,或者就像另一篇文章 Java 面 试题:写一个字符串的反转 所说:

面试开发人员不仅辛苦而且乏味,当然也有一些极好的参考,如:Joel Guerilla Guideto interviewing, 但是最后录用与否你来决定。为了快速了解他们的编程能力,我已经想好要问他们字符串反转的问题。

除了字符串反转的问题外,还有一道好题。

Java是否支持多重继承?

好了,很明显传统意义上Java并没有多继承,所以正确的答案应该是: 没有 或者 有,但 是 或者 没有,但是 。单从这点就可以探索出不同的方法来。通常我会问 是否因Java语言的设计者笨到没法实现多重继承 作为我们话题的开始,为什么 C++那帮家伙实现了呢?我主要以菱 形继承问题来说明:

在面向对象的编程语言中总伴随着多重继承及组织的理解。菱形继承问题就是在如下情景时出现含 糊不清的情况:当两个类B和C继承自A,类D同时继承自B和C, 如果D中的一个方法调用一个在A中定义的方法(不是覆盖方法).而B和C分别用不同地方式重写(overridden)了方法,那么这个方法到底是继承的 哪个类呢,B还是C?

另一探索性的方法是:Java怎么模拟 多重继承 ?我想答案已经浮出水面了,就是接口 (Interface)。我们经常在Java中讨论接口,那么应试者在什么时候,怎么使用接口的呢? 使用接口又有什么好处呢?应试者是否喜欢使用接口?我可以检测他对建模有多熟练,有时还会让他针对接口画画图。我们继续谈论Java中接口的问题,当两个 接口有相同的静态域(field),有一个类实现了Java中所谓的 多继承 的两个接口时会出现什么情况?

publicinterfaceI1 {

String NAME = "codemonkeyism";

}

publicinterfaceI2 {

String NAME = "stephan";

}

publicclassC implementsI1, I2 {

publicstaticvoidmain(String[] args) {

System.out.println(NAME);

Java坚持了他们的做法,语言的设计者决定不让其编译通过。

C.java:3: reference to NAME is ambiguous, both variable NAME

in I1 and variable NAME in I2 match

System.out.println(NAME);

^

1 error

还有更多的方法和我们的应试者去探讨多继承的问题, 例如:接口中方法的修饰符是什么?对于菱形继承问题使用traits实现混合结构是否比使用接口更好,还是和多继承一样的糟糕?正如我不在那么钟爱继承一 样,大量使用继承是一种代码异味。我们还可以和应试者讨论继承的负面因素重耦合的例子。

为什么会有这问题?

我为什么会问这个问题呢,从这个问题中又学到了什么?继承在面向对象(OO)中是很基础的概 念,是每个Java程序员都应该理解的概念。同时也是他反映到工 作中,理解超出语法层面的另一个基本的特性。所以对于多继承问题,我喜欢那些可以引出很多可以探讨与思考的问题。这个继承问题只是多继承、语言设计、代码 味道、解决方案、接口、基于角色的开发等众多问题中的一种而已。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...