final修饰类不可继承,修饰方法不可重写。如MathUtils类用final防止扩展,String类确保不可变;Vehicle的start()方法设为final避免被重写,保证核心逻辑安全,适用于工具类或关键算法,增强代码稳定性与安全性。

在Java中,final关键字是一个非常重要的修饰符,主要用于限制类、方法和变量的修改。本文重点介绍如何使用final修饰类与方法,帮助你更好地理解其在面向对象编程(OOP)中的实际应用。
final修饰类:防止继承
当一个类被final修饰时,表示这个类不能被继承。也就是说,其他类无法通过extends关键字来扩展该类。
适用场景:当你设计一个功能完整、不希望被修改或重写的类时,可以使用final来保护类的完整性。
例如:
public final class MathUtils {
public Static int add(int a, int b) {
return a + b;
}
}
此时,任何尝试继承MathUtils的类都会导致编译错误:
立即学习“Java免费学习笔记(深入)”;
// 编译报错!
// class MyMath extends MathUtils { }
Java标准库中的string类就是典型的final类,确保字符串的不可变性和安全性。
final修饰方法:防止重写
如果一个方法被声明为final,那么子类不能重写(override)这个方法。这在设计框架或核心逻辑时非常有用,确保关键行为不被篡改。
注意:final方法仍然可以被继承,只是不能被修改实现。
例如:
class Vehicle {
public final void start() {
System.out.println(“Vehicle is starting…”);
}
}
class Car extends Vehicle {
// 以下代码将引发编译错误
// public void start() { }
}
这样可以保证所有子类调用start()时执行的是父类定义的逻辑。
使用建议与注意事项
使用final修饰类和方法虽然能增强程序的安全性和稳定性,但也会影响扩展性,因此需谨慎使用。
- 不要随意对普通业务类使用final,除非确实需要防止继承
- 在工具类、安全敏感类或性能关键类上使用final类更合适
- 核心算法或不可变逻辑的方法可设为final,避免被意外覆盖
- final方法支持重载(overload),但不允许重写(override)
基本上就这些。合理使用final关键字,可以让代码更健壮、更清晰,是OOP设计中值得掌握的技巧。