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

问题描述

公司考试的试题中有一道判断题:接口不包含成员变量和方法实现。我选择的而是错,因为接口中可以包含成员变量(其实就是接口常量),但是答案是对的,我与出题人交流时无法达成一致,他的理由是:首先,对于变量和常量做一个澄清。常量就是不可以被改变的数值。变量就是可以被改变的数值。如果模糊一点,也可以都叫做变量。 对于接口中定义的变量,编译器会默认它是常量,不可更改。等同于 final static。 其次,对于接口来说,本身是不不可以被实例化,也不能包含任何可变的数据。您给出的例子是类中的变量,而不是接口。 因此,“Java中,接口不包含成员变量和方法实现”我认为是没有问题的。我无法说服他,所以在这里请教大家,究竟他说的对不对? 问题补充:呵呵,先谢谢大家的回帖,其实如果是平时讨论到这里就算了,但是既然是考试那就不一样了。如果本身这道题没有正确答案,那何必考他呢?考了就是看对知识的掌握情况,如果遇到了模棱两可的题,不探其究竟是不是就失去了考试的意义了呢?甚至给了错误的答案,那是不是更是有违初衷呢?

解决方案

这已经是在扣字眼了。或者把Java8的接口默认实现摔他脸上?
解决方案二:
应该有坚持真理的精神,但是扣字眼就没意思了。适口而止吧,工作中也会经常碰到这种情况的,如果是实质性的问题就应该坚持,但是如果只是各人有各人的看法,有时只是从不同的角度来理解,那么就不要强迫别人同意自己的观点,保留意见就是了。
解决方案三:
我觉得主要是看 “成员变量”这个词怎么理解。假如认为 final static 修饰的属性,不是成员变量。那出题人就是对的。假如认为 final static 修饰的属性,也是成员变量。那楼主是对的。~~~~~~~~我倾向于认为 final static 修饰的属性,不是成员变量。我认可出题人的看法
解决方案四:
从答案看,这个问题其实就是想考接口中的变量是static final的,知道了这个知识点就ok,何必要去计较那个概念对?大家要的是知识不是争执,你大度一点就提升了一个层次
解决方案五:
目的是解决问题,而不是去钻牛角尖,过犹不及啊。我们只是搞编程的,而不是做理论研究的,把这些问题留给那些学者教授,我们的目的是保证程序运行正确,怎么运行的更快,设计的更巧妙,其它无关问题,统统靠边站。
解决方案六:
你和他将,死扣理论能解决问题么?

时间: 2024-10-30 22:40:22

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

java接口中的方法和变量为啥都必须是public?

问题描述 java接口中的方法和变量为啥都必须是public? 假如这个接口A是public 的,那么其他包里的类B就可以实现这个接口A, 实现本身就隐含的包括了继承,那么为啥A中的方法不能是protected呢?因为类B可以覆盖A中的protected方法啊. 请各位帮忙分析下,谢谢! 解决方案 http://www.cnblogs.com/dolphin0520/p/3811437.html 解决方案二: 假如你引用第三方的jar 呢? 解决方案三: public也可以覆盖.既然是接口,那么

JSON学习中遇到的两个问题,请大家帮忙解答

问题描述 1 生成动态beanString forlum="{age:12,name:"sun",doub:2.2,myFun:function(s,v){return this.doub;}}";JSONObject obj=JSONObject.fromObject(forlum);结果报错,好像是在生成动态函数function(s,v){return this.doub;}时不允许添加2个参数,请问大家,如何在动态BEAN的方法中添加2个参数2 XML转JSO

锁-JAVA中多线程读取成员变量的重复问题

问题描述 JAVA中多线程读取成员变量的重复问题 这是个模拟卖票的问题,使用一个对象实现Runnable接口建立四个线程,这个对象有100张票,四个进程同时卖,因为没使用锁,所以会出现负数票,但是为什么会出现相同的票呢?8号票卖了四次,是因为成员变量在if之后进栈保存了值?然后直接用这个num输出吗? 代码: class Ticket implements Runnable//extends Thread { private int num = 100 public void run()//这时

java代码-java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的?

问题描述 java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的? class Demo03 { public static void main(String[] args) { A.show(); } } class A { //构造方法 A(){ System.out.println("构造方法执行"); System.out.println(b); System.out.println(c); } static A a=new A(); sta

Java中成员方法与成员变量访问权限详解_java

记得在一次面试的笔试题中,有的面试官会要求写出具体的像pullic这些访问限定符的作用域.其实,平常我都没去系统的考虑这些访问限定符的作用域,特别是包内包外的情况,OK,笔试不行了.  这是java基本的知识,也是公司看重的,那没办法啦,我的脑袋记不住东西,那我只能把这些东西写下来方便自己温故知新,不废话了,贴代码了. 代码如下: package com.jaovo; /** *_1_ 成员变量访问权限的求证 * public private protected default(默认的权限) *

浅析Java中局部变量与成员变量同名解决技巧_java

要想区分这哥俩,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量        我们来研究一个事物:                属性:外在特征:例如人的身高,体重                行为:能够做什么:例如人有说话,打球等行为.        而在Java语言中,最基本的单位是类,类就是用来体现事物的.        用类class来描述事物也是如此:                属性:对应类中的成员变量                行为:对应类中的成员函数    

为什么java接口里不能有成员属性?

问题描述 为什么java接口里不能有成员属性? 为什么java接口里不能有成员属性?为什么java接口里不能有成员属性? 解决方案 java接口中只能有静态常量和抽象方法的规范. 解决方案二: 这是语法规定,接口是特殊的抽象类.即只包含抽象方法和常量.

Java接口中的字段

Java接口中的字段默认都是静态常量,不管在编码的时候有没有显示的指定static或者final.   如以下接口: public interface AccessFlag {     public int a = 10;     public static int b = 20;     public final int c = 30;     public static final int d = 40; }   它编译生成的二进制代码如下: public abstract interfac

判断数组中是否包含指定变量或元素

本文章提供了二款判断数组中是否包含指定变量或元素哦,主要是判断数组中是否包括指定字符或变量哦.这个是javascript教程的哦. 方法一 Array.prototype.contains = function (element) { for (var i = 0; i < this.length; i++) { if (this[i] == element) { return true; } } return false; } 方法二 Array.prototype.contains = fu