1. final的意思为最终。
2.当final修饰变量时,表示变量是常量,相当于C++的const关键字,只能被赋值一次。
3.当final修饰类方法,该类方法就不能被覆盖掉,如子类同名方法就不能覆盖父类的同名方法。此时当子类的某个方法和父类某个方法同名时,则报错。如:
class Parent
{
public final void fun1()
{
System.out.println("fun1 from Parent");
}
}
class Son extends Parent
{
public void fun1()
{
System.out.println("fun1 from Son");
}
}
public class Main {
public static void main(String[] args) {
Son s = new Son();
s.fun1();
}
}结果将报错,因为父类的 fun1()方法是用final修饰的,子类的 fun1()方法 无法覆盖他。
但注意:若父类的fun1()的public 改成private,则上面的程序是能正常输出的,因为当父类的fun1用private修饰时,对于用public修饰的子类方法来说,父fun1是不可见的。
3.final 修饰的类不能被继承,这很容易理解,因为很多情况继承一个类的目的,就是为了扩展该类的功能,而 final 意思为最终的意思,所以就不让你扩展功能了。
转载请注明原文地址: https://ju.6miu.com/read-48.html