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

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


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

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

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

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

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


宝慕林4294392
浏览 912回答 7
7回答

慕盖茨4494581

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

慕田峪7331174

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

慕神8447489

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

翻翻过去那场雪

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

慕标琳琳

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

www说

我觉得主要是看 “成员变量”这个词怎么理解。假如认为 final static 修饰的属性,不是成员变量。那出题人就是对的。假如认为 final static 修饰的属性,也是成员变量。那楼主是对的。我倾向于认为 final static 修饰的属性,不是成员变量。 我认可出题人的看法

达令说

虽然大家都没有明确提出哪个是对的,但是我很感激大家对这个问题的回答。我很想将分数分发给所有对该问题有实际指导意义的答题者,如:sswh、guazi,但是无奈只能选择一个最佳答案,请大家理解。谢谢 clxy 同学让我对JAVA8的新特性有了一些了解,所以我将最佳答案给了他!再次感谢大家!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java