sldarkangel
2013-08-16 10:12
浏览 247
已采纳

关于JAVA接口中是否包含成员变量的争执,请大家帮忙解答!

公司考试的试题中有一道判断题:
[color=red]接口不包含成员变量和方法实现。[/color]
我选择的而是错,因为接口中可以包含成员变量(其实就是接口常量),但是答案是对的,我与出题人交流时无法达成一致,他的理由是:

[size=medium]
[color=red]首先,对于变量和常量做一个澄清。常量就是不可以被改变的数值。变量就是可以被改变的数值。如果模糊一点,也可以都叫做变量。

对于接口中定义的变量,编译器会默认它是常量,不可更改。等同于 final static。

其次,对于接口来说,本身是不不可以被实例化,也不能包含任何可变的数据。您给出的例子是类中的变量,而不是接口。

因此,“Java中,接口不包含成员变量和方法实现”我认为是没有问题的。[/color][/size]

我无法说服他,所以在这里请教大家,究竟他说的对不对?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • clxy大叔 2013-08-16 10:49
    已采纳

    这已经是在扣字眼了。
    或者把Java8的接口默认实现摔他脸上?

    打赏 评论
  • dashabenmao 2013-08-16 10:15

    你和他将,死扣理论能解决问题么?

    打赏 评论
  • yunzhu666 2013-08-16 11:00

    应该有坚持真理的精神,但是扣字眼就没意思了。
    适口而止吧,工作中也会经常碰到这种情况的,如果是实质性的问题就应该坚持,但是如果只是各人有各人的看法,有时只是从不同的角度来理解,那么就不要强迫别人同意自己的观点,保留意见就是了。

    打赏 评论
  • zyn010101 2013-08-16 11:13

    目的是解决问题,而不是去钻牛角尖,过犹不及啊。我们只是搞编程的,而不是做理论研究的,把这些问题留给那些学者教授,我们的目的是保证程序运行正确,怎么运行的更快,设计的更巧妙,其它无关问题,统统靠边站。

    打赏 评论
  • guazixing 2013-08-16 11:24

    从答案看,这个问题其实就是想考接口中的变量是static final的,知道了这个知识点就ok,何必要去计较那个概念对?大家要的是知识不是争执,你大度一点就提升了一个层次

    打赏 评论
  • iteye_9831 2013-08-16 13:19

    我觉得主要是看 “成员变量”这个词怎么理解。

    假如认为 final static 修饰的属性,不是成员变量。
    那出题人就是对的。

    假如认为 final static 修饰的属性,也是成员变量。
    那楼主是对的。

    我倾向于认为 final static 修饰的属性,不是成员变量。
    我认可出题人的看法
    
    
    
    
    打赏 评论

相关推荐 更多相似问题