Java的函数如果用final修饰,表示父类的该函数不能被子类覆盖或者隐藏。
代码示例:
// 父类
package com.thb;
public class ClassOne {
public final void method1() {}
public void method2() {}
public static void method3() {}
public static final void method4() {}
}
// 子类
package com.thb;
public class ClassTwo extends ClassOne {
// 因为父类的method1函数用final修饰,所以不能被子类覆盖。如果去掉下面代码的注释会编译报错
//@Override
//public void method1() {}
// 父类的method2函数没有final修饰,所以可以被子类覆盖
@Override
public void method2() {}
// 因为父类的静态函数method3没有final修饰,所以可以被子类隐藏
public static void method3() {}
// 因为父类的静态函数method4用final修饰,所以不能被子类隐藏。如果去掉下面代码的注释就会编译报错
//public static final void method4() {}
}