Java中的final关键字

使用final关键字可以完成如下的操作:

.声明一个类

  使用final去修饰一个类时,该类不能被继承

final class example{
	int value;
	public int getValue(){
		return value;
	}
}

//这里的test想要继承example,但是example被final修饰,所以在编译时会报错
class test extends example{

}

  

.声明一个方法

  使用final修饰一个类的方法,则该方法不能被子类重写

class example{
	int value;
	final public int getValue(){
		return value;
	}
}

class test extends example{
	
	public int getValue(){
	
	}
}

//这里的test类尝试重写父类example的方法getValue(),但是在父类中getValue()使用final修饰,会报无法覆盖父类方法的错误

  

.声明一个常量

class example{

	final int value = 100;
     final int value1;

	public int setValue(){
		value = 200;

		return value;
	}
}

//类中的value使用了final修饰,说明value是一个常量,方法setValue()尝试去修改value的值,在编译期间会报无法为最终变量value指定值的错误.
//另外使用final修饰的value1初始化时没有赋值,也会报错,因为它是一个常量,不能没有值,这种情况可以在构造方法中赋值,如下

class example{
  final int value;

  example(int value){
    this.value = value;
  }
}

//注意,只有构造方法才可以给未初始化的final变量赋值

  

  

原文地址:https://www.cnblogs.com/qthomas/p/4005674.html