A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1055513951 中级黑马   /  2016-1-20 22:15  /  726 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Fu {
        public static final int m = 10;
}
class Zi extends Fue {
        int m = 1;
}
再创建子类对象后,调用m的值是1,final int m = 10不是定义为常量了吗?为什么还会改变,final没有作用吗?

6 个回复

倒序浏览
你是重新定义的, 直接使用就可以,
回复 使用道具 举报
+++++++++++++++++
回复 使用道具 举报
常量的名字要全部大写,被final修饰的值不能改变
回复 使用道具 举报
int m  等一   是因为又是一个变量了  跟Fu类的成员没有冲突
回复 使用道具 举报
int m  等1   是因为你在Zi类里面又重新定义了一个变量并赋值为1  跟Fu类的成员没有冲突
回复 使用道具 举报
接口只能用interface,不用class。接口中只有常量,你那是在子类定义了一个变量,不是一码事
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马