社区
Java SE
帖子详情
关于接口和类的问题。
snowrain_2008
2010-01-27 11:12:52
假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?
...全文
147
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楼的答案不敢苟同。
抽象
类
和
接口
有什么区别
抽象
类
和
接口
并不能互相替代。抽象
类
和
接口
各有不可替代的作用。
抽象
类
和
接口
抽象
类
和
接口
的区别: 抽象
类
可以包含普通字段和成员,
接口
中不能包含普通方法,子
类
必须重写所有的抽象方法 抽象方法由普通
类
(普通字段和方法)和抽象方法组成
接口
由抽象方法和全局常量组成 使用extends继承抽象...
抽象
类
和
接口
的区别
抽象
类
和
接口
的区别 一
接口
和抽象
类
的相似性 1
接口
和抽象
类
都不能被实例化,它们都位于继承树的顶端,用于被其他
类
实现和继承。 2
接口
和抽象
类
都可以包含抽象方法,实现
接口
或继承抽象
类
的普通子
类
都必须实现...
接口
与抽象
类
的区别
a、抽象
类
不能被实例化只能被继承; b、包含抽象方法的一定是抽象
类
,但是抽象
类
不一定含有抽象方法; c、抽象
类
中的抽象方法的修饰符只能为public或者protected,默认为public; d、一个子
类
继承一个抽象
类
,则...
Java中抽象
类
和
接口
的区别
在Java中,可以通过两种形式来体现OOP的抽象:
接口
和抽象
类
。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的
接口
...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章