1、修饰类, 不能被继承。
public final class Father { }
public class Son extends Father { }
2、修饰方法,不能被重写,可以被重载
public class Father {
public final void sayHello ( ) { }
public final void sayHello ( String name) { }
}
public Son extends Father {
public void sayHello ( ) { }
}
3、final 不能abstract 同时使用,IDE 提示有错误。
final abstract class Father {
public final void sayHello ( ) { }
}
abstract class Father {
abstract final void sayHello ( ) ;
}
4、final 修饰成员变量,要么在声明时赋值,要么构造函数中赋值
public class FinalDemo {
private final String name = "leeon" ;
private final String addr;
public FinalDemo ( ) {
addr = "深圳" ;
}
}
5、final 不能修饰构造器函数,IDE 提示错误
public class FinalDemo {
public final FinalDemo ( ) { }
}
6、final 修饰静态成员变量,要么在声明时赋值,要么静态初始化块中赋值
public class FinalDemo {
static final String name = "leeon" ;
static final String addr;
static {
addr = "深圳" ;
}
}