赞
踩
当final修饰一个类时,该类不能被继承,即不能有子类。这种情况下,该类的实现被认为是完整、安全和稳定的。例如,String类就是一个final类,因为它的实现中包含了一些重要的安全机制,不能被子类修改。
示例代码:
- public final class MyClass {
- // 类实现
- }
当final修饰一个方法时,该方法不能被子类重写。这种情况下,该方法的实现被认为是最终的、安全的或固定的。例如,Object类中的getClass()方法就是一个final方法,它返回该对象的运行时类型信息,不能被子类修改。
示例代码:
- public class ParentClass {
- public final void myMethod() {
- // 方法实现
- }
- }
-
- public class ChildClass extends ParentClass {
- // 这里编译错误,无法重写myMethod()方法
- public void myMethod() {
- // 子类实现
- }
- }
当final修饰一个变量时,该变量的值只能被赋值一次,且不能再次修改。这种情况下,该变量被认为是不可变的、恒定的或常量化的。例如,Math.PI就是一个final变量,因为圆周率是一个固定的常量,不会发生变化。
如果final变量是一个对象引用,那么该变量指向的对象可以被修改,但是不能再将该变量指向另一个对象。
示例代码:
- public class MyClass {
- public static final int MY_CONSTANT = 100;
- // 其他代码...
- }
- public class MyClass {
- public void myMethod(final String str) {
- // str不能被重新赋值
- System.out.println(str);
- }
- }
myMethod()方法的参数str被final修饰,表示该参数只能被赋值一次,并且不能被重新赋值。因此,在方法的实现中,不能对str进行重新赋值操作。
- public class MyClass {
- public void myMethod() {
- final int num = 100;
- // num只能被赋值一次
- System.out.println(num);
- }
- }
myMethod()方法中定义了一个final修饰的局部变量num,表示该变量只能被赋值一次。因此,在方法的实现中,不能对num进行重新赋值操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。