黑马程序员技术交流社区

标题: 关于final的一个小问题呢 [打印本页]

作者: xiwangliujiao    时间: 2012-5-1 12:30
标题: 关于final的一个小问题呢
一个类被final关键字修饰后,除了不能被其他的类继承外,我想问一下,他里边的成员变量都是常量吗?方法都不能被重写吗?
作者: 刘基军    时间: 2012-5-1 12:45
既然类不能被继承了,那就肯定无法重写其方法.
至于其成员变量本来是怎么修饰的就是什么样的变量
作者: 攻城狮    时间: 2012-5-1 13:00
final可以修饰类 函数 变量,被final修饰的类不可以被继承,被final修饰的方法不可以被复写,被final修饰的变量是一个常量只能赋值一次。
内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
作者: 刘_浩    时间: 2012-5-1 13:23
被final修饰的类是不能被继承的,里面的成员当然不能被改变,也就包括了成员变量,和成员方法。而且还提醒你一点,最终类是可以继承其他类的,不过只能继承一次。
作者: 崔仁军    时间: 2012-5-1 13:42
1. final 关键字:final 可以修饰属性、方法、类。
2. final 修饰类:当一个类被final 所修饰时,表示该类是一个终态类,即不能被继承。
3. final  修饰方法:当一个方法被final  所修饰时,表示该方法是一个终态方法,即不能被重写(Override )。
4. final 修饰属性:当一个属性被final 所修饰时,表示该属性不能被改写。
5. 当 final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化(比如说不能从10 变为 20 );如果final  修饰一个引用类型时,表示该引用类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。
6. 对于final 类型成员变量,一般来说有两种赋初值方式:
   a  在声明final 类型的成员变量时就赋上初值
   b  在声明final 类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋上初值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2