1.final作为关键字,表示不可变的
2.final修饰的类无法被继承
3.final修饰的方法无法被覆盖
4.final修饰的变量一旦赋值后不可覆盖
5.final修饰的引用不能更改为其他引用,但是引用内部可以改变
6.final常常与static连用,表示不可改变的常量,例如
public final static double pi=3.1415926;
package Test02;
public final class A {
public final void show() {
}
}
//报错
public class B extends A{
}
public class A {
public final void show() {
}
}
public class B extends A{
//报错
public void show() {
}
}
//right
public class D {
private final int d;
D(){
d=10;
}
public void show() {
System.out.println(this.d);
}
}
//no
//The final field D.d cannot be assigned
public class D {
private final int d=10;
D(){
d=20;
}
public void show() {
System.out.println(this.d);
}
}
public class TeatFinal {
public static void main(String []args) {
final D d=new D(10);
//error
//d=new D(20);
//right
d.set(20);
}
}