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

2019 年 8 月 15 日
 kaiyiliu123

static String name = super.name;

报错

5205 次点击
所在节点    Java
37 条回复
sunziren
2019 年 8 月 15 日
缓缓的打出一个问号,厉害了我的哥。
hhhsuan
2019 年 8 月 15 日
就是设计的不好,Java 有很多坑
HolmLoh
2019 年 8 月 15 日
哈哈哈哈 没法删帖的
sunziren
2019 年 8 月 15 日
静态属性属于类,而 super 调用的是对象?
qianyan
2019 年 8 月 15 日
滚上去🙈
ChenStyle
2019 年 8 月 15 日
真的挺丢人的……
raven64
2019 年 8 月 15 日
据说连编辑都不行?
freebird1994
2019 年 8 月 15 日
2333
fvckDaybyte2
2019 年 8 月 15 日
……
NewDraw
2019 年 8 月 15 日
把自己钉上耻辱架了,哈哈哈。
ylls
2019 年 8 月 15 日
哈哈哈哈 顶上去
szq8014
2019 年 8 月 15 日
总结是 javaer 挺和谐的
ipwx
2019 年 8 月 15 日
@vjnjc 我不是 Java 程序员,但是听说 Java 有 shadow 一个变量的做法,所以问问嘛。

按照外行来看,子类 shadow 掉一个父类的 static 变量,好像也没啥问题?至于这个赋值,不能看作把父类的初值复制过来一次嘛?
itechify
2019 年 8 月 15 日
哈哈哈,我笑了你们呢
zhuang0718
2019 年 8 月 18 日
学习啦 哈哈哈
vjnjc
2019 年 8 月 19 日
@ipwx shadow 没问题,问题是等式的右值取不到。"static String name = super.name;" 因为 super 是父对象的概念,而这里 static 修饰了 statment,就不是在对象内了。
vjnjc
2019 年 8 月 19 日
@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