final关键字可用于修饰类,变量和方法,他有“不可更改”和“最终”含义,因此被final关键字修饰的类,变量和方法具有以下的特性。。
1.final修饰的类不能被继承。
2.final修饰的方法不能被子类重写。
3.final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。
1.final关键字修饰类
Java中类被final修饰后,该类将不可以被继承,也就是不能够派生出子类。
final class Animal{
}
class Dog extends Animal{
}
public class test {
public static void main(String[] args) {
Dog dog = new Dog();
}
}
2.final关键字修饰方法
当一个类的方法被final修饰后,这个类将不能重写该方法。但是可以重载。
#当类的方法重写时
class Animal{
public final void shout(){
}
}
class Dog extends Animal{
public void shout(){}
}
public class test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.shout();
}
}
#当进行对方法重载时
class Animal{
public final void shout(){
}
}
class Dog extends Animal{
public void shout(int i){
System.out.println("i="+i);
}
}
public class test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.shout(1);
}
}
3.final关键字修饰变量
Java中被final修饰的变量被称为常量,它只能被赋值一次,即final修饰的变量一旦被赋值,其值不能改变。
3.1 final关键字修饰局部变量
public class test {
public static void main(String[] args) {
final int num=0; //第一次赋值
num=10; //再次赋值报错
System.out.println("num="+num);
}
}
3.2 final关键字修饰成员变量
public class test {
//final修饰的成员变量,必须在声明的同时进行赋值,否则编译报错
final int m;
final int mm=10;
public static void main(String[] args) {
//final修饰的局部变量,可以先声明,在进行一次赋值
final int n;
n=4;
}
}