public static final String的问题

lxqueen 2011-10-14 10:47:08
public class Base{
public static final String FOO="foo";
public static void main(String agrs[])
{
Base b=new Base();
Sub s=new Sub();
System.out.print(Base.FOO);
System.out.print(Sub.FOO);
System.out.print(b.FOO);
System.out.print(s.FOO);
System.out.print(((Base)s).FOO);
}
}
class Sub extends Base{
public static final String FOO="bar";
}

为什么答应出来是foobarfoobarfoo,我觉得public static final String声明后的FOO应该不能被修改了啊~希望大家指点啊~谢谢
...全文
889 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
caishenfans 2011-10-16
  • 打赏
  • 举报
回复
前两天笔试人人的时候 就有这个题
七七仔17 2011-10-15
  • 打赏
  • 举报
回复
注意:你这里两个FOO已经不是同一个了。。所以没有涉及到你所说的修改。
grice_liu 2011-10-14
  • 打赏
  • 举报
回复
把属性换成get方法取得属性值
在get方法中打印"INTO "+this.toString()
看看输出
nizhicheng 2011-10-14
  • 打赏
  • 举报
回复
用final的意义:
防止任何继承类改变它的本来含义
老张-AI 2011-10-14
  • 打赏
  • 举报
回复
你觉得那里改了?你看看字符串池这个概念吧。
原来缘来 2011-10-14
  • 打赏
  • 举报
回复
System.out.print(((Base)s).FOO);
应该是Base的FOO
nizhicheng 2011-10-14
  • 打赏
  • 举报
回复
学习了
[Quote=引用 4 楼 monghuan 的回复:]
Java code

System.out.print(((Base)s).FOO);
//=>Base b1 = (Base)s;
// System.out.print(b1.FOO);输出谁的FOO,由b1所属的类决定
[/Quote]
脉动 2011-10-14
  • 打赏
  • 举报
回复

System.out.print(((Base)s).FOO);
//=>Base b1 = (Base)s;
// System.out.print(b1.FOO);输出谁的FOO,由b1所属的类决定

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧