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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wx_Zdt18Ww6 中级黑马   /  2016-4-11 10:30  /  809 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Fu{
        final static int age = 1;
       
}

class Zi extends Fu{
         int age = 2;       
}
如上代码   子类继承了父类的age  为什么还能声明age变量  而不算同名变量   求解答

9 个回复

倒序浏览
final修饰的成员和成员变量,可以被继承。

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 很给力!

查看全部评分

回复 使用道具 举报
董改名 发表于 2016-4-11 11:10
final修饰的成员和成员变量,可以被继承。

子类继承父类 我举个例子
class Fu{
        int        a = 1;
}

class Zi{
        int a = 2;
}
为什么这样写  ,而不是在子类中直接 a = 2;   
这样写不相当于在同一类中{ int a = 1; int a = 2;}吗       我是这个问题
回复 使用道具 举报
wx_Zdt18Ww6 发表于 2016-4-11 12:44
子类继承父类 我举个例子
class Fu{
        int        a = 1;

子类确实继承了父类的成员变量a的值,但是子类中又定义了一下a变量,相当于父类的成员被覆盖了,所以不能算是修改final修饰的变量。如果在main函数中试图去修改的话,那肯定会报不能修改的错的。
回复 使用道具 举报
董改名 发表于 2016-4-11 13:52
子类确实继承了父类的成员变量a的值,但是子类中又定义了一下a变量,相当于父类的成员被覆盖了,所以不能 ...

可以理解为重写变量吗
回复 使用道具 举报
wx_Zdt18Ww6 发表于 2016-4-11 14:14
可以理解为重写变量吗

应该可以,覆盖和重写差不多吧
回复 使用道具 举报
董改名 发表于 2016-4-11 17:21
应该可以,覆盖和重写差不多吧

ok  多谢了
回复 使用道具 举报
董改名 发表于 2016-4-11 17:21
应该可以,覆盖和重写差不多吧

ok        多谢了
回复 使用道具 举报
被final,修饰的变量是常亮
回复 使用道具 举报
你这是子父类中声明了相同名字的变量,是两个变量.你把Zi中的int去掉,就该报错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马