为什么子类静态属性不能被赋值?

2019-08-15 10:59:16 +08:00
 kaiyiliu123

static String name = super.name;

报错

4365 次点击
所在节点    Java
37 条回复
sunziren
2019-08-15 14:11:54 +08:00
缓缓的打出一个问号,厉害了我的哥。
hhhsuan
2019-08-15 14:14:36 +08:00
就是设计的不好,Java 有很多坑
HolmLoh
2019-08-15 14:15:07 +08:00
哈哈哈哈 没法删帖的
sunziren
2019-08-15 14:19:14 +08:00
静态属性属于类,而 super 调用的是对象?
qianyan
2019-08-15 14:19:18 +08:00
滚上去🙈
ChenStyle
2019-08-15 14:19:42 +08:00
真的挺丢人的……
raven64
2019-08-15 14:20:25 +08:00
据说连编辑都不行?
freebird1994
2019-08-15 14:41:59 +08:00
2333
fvckDaybyte2
2019-08-15 14:57:57 +08:00
……
NewDraw
2019-08-15 15:00:59 +08:00
把自己钉上耻辱架了,哈哈哈。
ylls
2019-08-15 15:54:12 +08:00
哈哈哈哈 顶上去
szq8014
2019-08-15 16:02:54 +08:00
总结是 javaer 挺和谐的
ipwx
2019-08-15 16:06:22 +08:00
@vjnjc 我不是 Java 程序员,但是听说 Java 有 shadow 一个变量的做法,所以问问嘛。

按照外行来看,子类 shadow 掉一个父类的 static 变量,好像也没啥问题?至于这个赋值,不能看作把父类的初值复制过来一次嘛?
oneisall8955
2019-08-15 20:10:21 +08:00
哈哈哈,我笑了你们呢
zhuang0718
2019-08-18 00:03:33 +08:00
学习啦 哈哈哈
vjnjc
2019-08-19 22:48:51 +08:00
@ipwx shadow 没问题,问题是等式的右值取不到。"static String name = super.name;" 因为 super 是父对象的概念,而这里 static 修饰了 statment,就不是在对象内了。
vjnjc
2019-08-19 22:49:35 +08:00
@ipwx #33 忘记说了 super 是关键字,用来在子对象里取父对象属性的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/592041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX