关于final的一些问题

来源:9-5 Java 中的 final 的使用

慕神7194819

2015-10-25 11:22

我在父类中定义了final age=20;又在子类中定义了 int age=10;为什么可以通过编译的,不是说final关键字定义的变量是不可以在重新赋值了吗

写回答 关注

2回答

  • mum8u6
    2015-11-06 14:11:08

    你在父类中定义的age跟你在子类中定义的age是两个不一样的变量,作用域不一样。就好比你跟你爸一人有一杯优乐美,他的优乐美他自己喝,你的优乐美是给你喝的。两杯不一样的优乐美!虽然他们的牌子是一样的。

    你爸给他的优乐加了一把锁,然后把钥匙扔了,这样就再也没有人能动他杯子里的优乐美了,就好比final。。。。

    然而这并不影响你喝你的优乐美。。。

    顺便问一句,你喜欢和优乐美还是香飘飘?原味还是草莓味。。。。

    0821

    大神啊

    2016-12-31 09:39:29

    共 1 条回复 >

  • 任e逍遥
    2015-10-28 09:12:02

    我经过了测试,发现在子类中声明的同名变量和父类中的同名变量是完全不一样的两个量,比如父类的变量是final int A=10; 子类是int A=20; 则声明一个子类的时候,这个A指的是这个20,而且因为没有final,这个A也是可以修改的。这个性质在类和它的方法中也存在。

    0821

    子类中int A=20,说明你已声明并初始化过了,是一个在子类中新创建的变量;如果你在子类中直接打A=20,这就是继承,父类中已fina过了,不允许继承并修改,系统就会报错,A下面给你划红线。

    2016-12-31 09:46:08

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530085 学习 · 6086 问题

查看课程

相似问题