社区
Java SE
帖子详情
接口中的变量为什么默认是public static final的?
tomsheep
2008-10-26 10:54:22
如果说public是为了让实现类访问,那设计成protected会有什么弊端?
如果说static是为了让所有实现类只有此一实例,这又是为什么?
如果final是为了不让实现类修改,又是为何?
...全文
603
15
打赏
收藏
接口中的变量为什么默认是public static final的?
如果说public是为了让实现类访问,那设计成protected会有什么弊端? 如果说static是为了让所有实现类只有此一实例,这又是为什么? 如果final是为了不让实现类修改,又是为何?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ageha67
2009-03-19
打赏
举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]
嗯嗯。。。今天回头看书上的接口部分,也是突然和lz同问。。。受教了。。。。
chiphuo
2008-10-27
打赏
举报
回复
我觉得这是接口的作用决定的,
接口主要是为了实现多态的,接口里的代码并不是为了复用的
而类除了为了实现多态是
还为了实现代码的复用
如果static了,一个子类把值一改,所有的全部改掉了,不合道理
tomsheep
2008-10-27
打赏
举报
回复
[Quote=引用 2 楼 xqh2168 的回复:]
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;
[/Quote]
那抽象类也无法实例化,为什么成员不默认是static的?
ssnec
2008-10-27
打赏
举报
回复
没必要扣字眼。当然这种钻的精神还是好的。
推荐你去看那些基础书,最好是英文原版的。讲得很清楚。
至于为什么PUBLIC,STATIC,FINAL。
就好比我们默认的潜规则,红灯停,绿灯行一样。
AppleBoy2008
2008-10-27
打赏
举报
回复
有些东西用的多了,自然就理解了,再者刚开始学习java应该即学即用,等有经验了就可以研究源码了。
zhangpeng9886123
2008-10-27
打赏
举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]
真的吗??不懂
getter
2008-10-27
打赏
举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]
同意
yy2004005
2008-10-27
打赏
举报
回复
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
gs840120
2008-10-27
打赏
举报
回复
紫竹的回答太经典了
老紫竹
2008-10-27
打赏
举报
回复
一句话,这是规定,不需要理由。
还有人为我,为啥用 public ,不能是 ppuubb 呢? ....
lihan6415151528
2008-10-27
打赏
举报
回复
[Quote=引用 5 楼 java2000_net 的回复:]
一句话,这是规定,不需要理由。
还有人为我,为啥用 public ,不能是 ppuubb 呢? ....
[/Quote]
正是!
xql80329
2008-10-27
打赏
举报
回复
[Quote=引用 6 楼 gs840120 的回复:]
紫竹的回答太经典了
[/Quote]
up
hopegood
2008-10-27
打赏
举报
回复
引用 2 楼 xqh2168 的回复:
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;
这句话不对吧,怎么可能是static类型的
xqh2168
2008-10-26
打赏
举报
回复
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;
接口功能的实现必须依赖实现接口的类,一个类可以实现多个接口,而一个接口又可以被多个类实现,
为了避免出现c++中多重继承基类中相同成员域的处理问题,java中就把接口中的成员域定义为static final类型。
http://topic.csdn.net/u/20080827/18/b4cec228-f050-4102-a323-b88b33308d15.html?1170067566
jiannye
2008-10-26
打赏
举报
回复
如果用protected的话 在不同的包中就不能访问
第二个不清楚你在说什么
第三个是让方法不再能被修改,让类不能再被继承
Postman单
接口
入门与自动化测试实战
课程目标: 熟练使用postman对单
接口
测试的掌握,并可以使用postman做自动化测试和持续集成 课程简介: Postamn是我们测试平时使用广泛的
接口
测试工具,它不仅仅可以完成我们平时工作
中
的单
接口
验证,一样可以帮助...
java,
接口
的
变量
为啥要是
public
static
final
?
jdk1.8
中
,
接口
中
的
变量
默认
是
public
static
final
接口
中
的方法
默认
是
public
abstract,除非是
static
方法或者
默认
方法
接口
中
的
变量
默认
是
public
static
final
?
public
:
接口
可以被不同包的不同类实现,是公有的,
static
:一个类继承多个
接口
时,即使存在同名
变量
也不会混淆。如果每个
接口
都含有一个名为a的成员
变量
,那么在该类
中
可...
为什么
接口
的
默认
变量
是
public
static
final
接口
中
的
变量
默认
是
public
static
final
?
public
:
接口
可以被不同包的不同类实现,是公有的,
static
:一个类继承多个
接口
时,即使存在同名
变量
也不会混淆。如果每个
接口
都含有一个名为a的成员
变量
,那么在该类
中
可以通过
接口
1.a,
接口
2.a,
接口
3.a来调用a,
final
:该
变量
不可被修改。如果一个
接口
被多个类实现时,在类1
中
修改了该
变量
的值,那么其他类
中
该
变量
的值也会变化,要防止该情况的发生。 ———————————————— 版权声明:本文为CSDN博主「二十六画生的博客」的原创
接口
中
的
变量
默认
是
public
static
final
的
在interface里面的
变量
默认
都是
public
static
final
的,原因如下: 1.
接口
是一种高度抽象的"模版",而
接口
中
的属性也就是’模版’的成员,就应当是所有实现"模版"的实现类的共有特性,所以它是
public
static
的 ,是所有实现类共有的. 假如可以是非
static
的话,因一个类可以继承多个
接口
,出现重名的
变量
,如何区分呢? 2.
接口
中
如果可能定义非
final
的
变量
的话,而方法又都是abstract的,这就自相矛盾了, 有可变成员
变量
,但对应的方法却无法操作这些
变量
,虽然可以直接
Java
接口
中
的成员
变量
是
public
static
final
?
我们可以在
接口
中
定义一些所需要的属性,比如: interface Myinterface{ int a = 0; } System.out.println(Myinterface.a); 如果我们操作这个
变量
a,那么: 这里报错也就证实了在
接口
中
定义的属性为
final
类型,且注意到我们直接可以通过.运算符得到值,故而这里的类型推断为
public
static
final
。 那么,为什么Java
接口
中
的成员
变量
是
public
static
final
? 假设不是
static
,因一个类可以实现多个接
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章