- final作用于变量
当final作用于变量时,表示该变量的值只能被赋值一次,一旦赋值不能更改。在Java中,final变量通常被用作常量或配置信息等需要被保护的不可变数据。
示例代码:
public class FinalVariableExample {
public static void main(String[] args) {
final int i = 10;
// i = 20; // 编译错误,final变量不能被修改
System.out.println("i的值为:" + i);
}
}
上例中final修饰的变量i只能赋值一次,后续再次修改就会编译错误。
- final作用于参数
当final作用于方法的参数时,表示该参数在方法执行期间不能被修改。一般情况下,final参数用于定义回调函数接口时,保证接口参数不被修改。
示例代码:
public interface Calculator {
int add(final int x, final int y);
}
public class SimpleCalculator implements Calculator {
@Override
public int add(final int x, final int y) {
// x = 2; // 编译错误,final参数不能被修改
int result = x + y;
return result;
}
}
上例中,Calculator接口的add方法定义了两个final参数x和y,SimpleCalculator类重写了此方法,在重写的方法中对final参数进行求和运算,此时无法修改x和y的值。
- final作用于方法
当final作用于方法时,表示该方法不能被重写(override)。通常情况下,final方法用于保护基类的方法,只允许继承而不允许修改。
示例代码:
public class Parent {
public final void print() {
System.out.println("我是父亲.");
}
}
public class Child extends Parent {
// @Override // 编译错误,final方法不能被重写
public final void print() {
System.out.println("我是儿子.");
}
}
上例中,Parent类定义了一个被final修饰的方法print,Child类继承自Parent类,尝试重写此方法,但由于print方法被final修饰,所以编译错误。
- final作用于类
当final作用于类时,表示该类不能被继承(inherit)。一般情况下,final类用于保护该类的定义,防止子类对其进行修改或破坏。
示例代码:
public final class Parent {
public void print() {
System.out.println("我是父亲.");
}
}
public class Child extends Parent {
// 编译错误,final类不能被继承
}
上例中,Parent类被final修饰,表示该类不能被继承,因此Child类不能继承Parent类。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中final作用于变量、参数、方法及类该如何处理 - Python技术站