社区
Java SE
帖子详情
关于接口和类的问题。
snowrain_2008
2010-01-27 11:12:52
假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?
...全文
187
9
打赏
收藏
关于接口和类的问题。
假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bayougeng
2010-01-30
打赏
举报
回复
不是你想的那样,把static final变量放在一个接口里,也是很普遍的做法。
lixkyx
2010-01-30
打赏
举报
回复
[Quote=引用 6 楼 bayougeng 的回复:]
关键看你逻辑怎么分了。
如果确实是应该放在一起的东西,放接口里也无不可。
楼上有位仁兄说要继承接口才能用,是错误的。
接口里的变量都是public static final的,不实现接口一样可以用。
调用的时候,应该是:InterfaceName.value。
而不是:someInstace.value。
[/Quote]
这样做的话,和定义成一个类的静态成员有何区别呢?
一定要使用接口的静态成员,有什么优势呢?
为什么Java的标准类中常见的方法是使用类的静态成员而不是使用接口的呢?肯定有其道理的。
bayougeng
2010-01-27
打赏
举报
回复
关键看你逻辑怎么分了。
如果确实是应该放在一起的东西,放接口里也无不可。
楼上有位仁兄说要继承接口才能用,是错误的。
接口里的变量都是public static final的,不实现接口一样可以用。
调用的时候,应该是:InterfaceName.value。
而不是:someInstace.value。
shaiz0530
2010-01-27
打赏
举报
回复
感觉也是
snowrain_2008
2010-01-27
打赏
举报
回复
[Quote=引用 3 楼 lixkyx 的回复:]
引用楼主 snowrain_2008 的回复:
假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?
当然是后者。
学过Java语言的人,应当有印象,Java的标准类里面绝大部分类就有大量的静态属性(成员变量),需要的用时候,任何其他类的方法里都可以使用标准类名.成员名的方式来访问。这是最简单、逻辑最清晰的方案。恰恰就是解决楼主要做的事情的方法。
相反,使用接口变量而要其他所有类都实现的方案,显然太繁琐了,而且容易漏掉导致程序出错。
[/Quote]
谢谢这位仁兄。正是我想要的答案。不过还是想等等看看其他人的看法。呵呵
lixkyx
2010-01-27
打赏
举报
回复
[Quote=引用楼主 snowrain_2008 的回复:]
假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?
[/Quote]
当然是后者。
学过Java语言的人,应当有印象,Java的标准类里面绝大部分类就有大量的静态属性(成员变量),需要的用时候,任何其他类的方法里都可以使用标准类名.成员名的方式来访问。这是最简单、逻辑最清晰的方案。恰恰就是解决楼主要做的事情的方法。
相反,使用接口变量而要其他所有类都实现的方案,显然太繁琐了,而且容易漏掉导致程序出错。
xlxyeyu
2010-01-27
打赏
举报
回复
不晓得。但不管怎么说共通的肯定写在接口里,自己独有的那最好就自己实现去
phyerbarte
2010-01-27
打赏
举报
回复
final了再static就能唯一了,LZ说的资源不知道是否是指一个对象实例。
pjw100
2010-01-27
打赏
举报
回复
[Quote=引用 6 楼 bayougeng 的回复:]
关键看你逻辑怎么分了。
如果确实是应该放在一起的东西,放接口里也无不可。
楼上有位仁兄说要继承接口才能用,是错误的。
接口里的变量都是public static final的,不实现接口一样可以用。
调用的时候,应该是:InterfaceName.value。
而不是:someInstace.value。
[/Quote]
同意,写接口也不一定要来继承,接口只是定义了一种标准和规范,看你怎么用了。
3楼的答案不敢苟同。
IDEA中新建
类
或
接口
后包名和其下的
类
和
接口
都不显示
问题
接口
和
类
混合继承的
问题
当借口IBase同时被Base
类
和IA继承时,继承自Base和IA的A
类
是否继承了IBase? 测试结果:是的 那么它是从Base
类
的实现继承的还是IA中的实现? Switch(我是谁?) Case (Base)a:我是继承自Base的实现 Case (IA)a:我是继承自IA的实现 Case(IBase)a:我是继承自IBase的实现 Case a:是...
如果
类
a继承
类
b,实现
接口
c,而
类
b和
接口
c中定义了同名变量,请问会出现什么
问题
?(瞬联)
如果
类
a继承
类
b,实现
接口
c,而
类
b和
接口
c中定义了同名变量,请问会出现什么
问题
?(瞬联)interface A{ int x = 0;}class B{ int x =1;}class C extends B implements A{ public void pX(){ System.out.println(x); } ...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章