课程
/后端开发
/Java
/Java入门第二季 升级版
我在父类中定义了final age=20;又在子类中定义了 int age=10;为什么可以通过编译的,不是说final关键字定义的变量是不可以在重新赋值了吗
2015-10-25
源自:Java入门第二季 升级版 9-5
正在回答
你在父类中定义的age跟你在子类中定义的age是两个不一样的变量,作用域不一样。就好比你跟你爸一人有一杯优乐美,他的优乐美他自己喝,你的优乐美是给你喝的。两杯不一样的优乐美!虽然他们的牌子是一样的。
你爸给他的优乐加了一把锁,然后把钥匙扔了,这样就再也没有人能动他杯子里的优乐美了,就好比final。。。。
然而这并不影响你喝你的优乐美。。。
顺便问一句,你喜欢和优乐美还是香飘飘?原味还是草莓味。。。。
0821
我经过了测试,发现在子类中声明的同名变量和父类中的同名变量是完全不一样的两个量,比如父类的变量是final int A=10; 子类是int A=20; 则声明一个子类的时候,这个A指的是这个20,而且因为没有final,这个A也是可以修改的。这个性质在类和它的方法中也存在。
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答关于final问题
2 回答关于final关键字的问题。
2 回答关于toString的一些问题
3 回答final关键字
2 回答Scanner的一些问题