|
|
|
昨天的面试题,请指教
|
2006年10月21日 10:24
|
|
|
标签列表
|
|
|
昨天去面试,问到了一个接口问题,为什么接口中定义的变量必须为常量?请指点!
|
|
|
|
|
|
Re: 昨天的面试题,请指教
|
2006年10月23日 15:26
|
|
|
|
我只知道这是Java规定,另外接口是行为抽象,不是属性抽象。
|
|
|
|
|
|
Re: 昨天的面试题,请指教
|
2006年11月16日 16:10
|
|
|
|
接口不能被实例化,所以其成员变量必须为不可修改的,就是常量。
|
|
|
|
|
|
回复:昨天的面试题,请指教
|
2007年01月25日 17:32
|
|
|
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年01月31日 10:58
|
|
|
因为接口定义处方法以外都 final static的所以必须为常量
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年01月31日 16:24
|
|
|
三楼的:接口不能被实例化,所以其成员变量必须为不可修改的,就是常量。
这个是正解
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年01月31日 18:46
|
|
|
楼上的 "接口不能被实例化" 与 "其成员变量必须为不可修改的" 有必然的联系吗?
抽象类也不能实例化,但它就可以定义变量
另外,接口是可以定义变量的,偶刚才试过了,可以通过编译
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年01月31日 18:56
|
|
|
续上,干脆把代码也贴出来
public abstract class Word{ public int i; }
class Test extends Word { public static void main(String[] args) { Test test=new Test(); System.out.println(test.i); test.i=2; System.out.println(test.i); } }
------------ PS:把WORD抽象类标识也可改为接口标识,但里面的变量i必须赋初值,可以不用fanil来声明为常量
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年02月01日 08:47
|
|
|
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年02月01日 18:00
|
|
|
|
因为接口不包含任何实现细节,所以他们不能定义普通的字段——这样的定义会把实现策略强加给选择实现该接口的类。
|
|
|
|
|
|
回复:昨天的面试题,请指教
|
2007年02月02日 09:37
|
|
|
首先你要弄清接口的含义.接口就是提供一种统一的'协议',而接口中的属性也属于'协议'中的成员.它们是公共的,静态的,最终的常量.相当于全局常量. 抽象类是不'完全'的类,相当于是接口和具体类的一个中间层.即满足接口的抽象,也满足具体的实现.
[该贴被leoyu于2007年02月02日 09:40修改过]
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年02月02日 13:37
|
|
|
|
|
|
|
|
|
回复:昨天的面试题,请指教
|
2007年02月02日 20:56
|
|
|
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年02月03日 21:05
|
|
|
什么公司啊,无不无聊了一点。管它为什么,只要知道接口里面只能声明常量不就得了。
他如果问: 接口里面能定义变量吗?
这样还说得过去。
|
|
|
|
|
|
re:昨天的面试题,请指教
|
2007年02月05日 03:39
|
|
|
|
|
|
|
|
这个主题有 47 回复 / 4 页
Go
1 2 3 4
►
|
|
|