final
/* * final * 1 final是java语言中的一个关键字。 * 2 final表示最终的,不可变得。 * 3 《重点》final修饰的变量? * final修饰的局部变量,一旦赋值,不能重新赋值。 * * 4 《重点》final修饰的方法? * final修饰的方法无法被覆盖,被重写。 * * 5 《重点》final修饰的类? * final修饰的类无法被继承 * * 6 《提示》final控制不了能不能调用的问题。final管的是啥? * final修饰的表示最后的。不能变的,不能改的。 * * 重点【精辟:final修饰的变量,只能赋一次值。】 * */ public class FinalTest01 { public static void main(String[] args) { D d = new D(); d.doSome(); // 局部变量 int i =100; // 重新赋值 i = 200; // 局部变量 final int k = 100; // 重新赋值 // Error:(28, 9) java: 无法为最终变量k分配值 // k = 300; // 初始化这个m final int m; // 重新赋值 m = 200; // 二次赋值 // Error:(38, 9) java: 可能已分配变量m // m = 300; } } final class A{ // A没有子孙 } // B类继承A类,相当于对A类的功能进行扩展。如果你不希望别人对A类型进行扩展。 // 你可以给A类加一个final关键字,这样的话A类就无法继承了。 // 错误:无法从最终A进行继承 /*class B extends A{ }*/ // Error:(26, 24) java: 无法从最终java.lang.String进行继承 /*class MyString extends String{ }*/ class C{ public final void doSome(){ System.out.println("C‘s doSome..."); } } /*Error:(39, 17) java: D中的doSome()无法覆盖C中的doSome() 被覆盖的方法为final*/ class D extends C{ /*public void doSome(){ System.out.println("D‘s doSome..."); }*/ }
原文:https://www.cnblogs.com/xlwu/p/13089748.html