1. El método modificado con final puede evitar la sobrescritura por subclases:
package abc;
public class Hello {
// 无法被覆写:
protected final void hi() {
}
}
2. Modificar el campo con final puede evitar que se reasigne:
package abc;
public class Hello {
private final int n = 0;
protected void hi() {
this.n = 1; // error!
}
}
3. La modificación de las variables locales con final puede evitar la reasignación:
package abc;
public class Hello {
protected void hi(final int t) {
t = 1; // error!
}
}
4. La modificación de la clase con final puede evitar la herencia:
package abc;
// 无法被继承:
public final class Hello {
private int n = 0;
protected void hi(int t) {
long i = t;
}
}