📅  最后修改于: 2020-09-26 13:52:38             🧑  作者: Mango
java中的final关键字用于限制用户。java final关键字可以在许多上下文中使用。最终可以是:
final关键字可以与变量一起使用,该变量没有值,称为空白最终变量或未初始化的最终变量。它只能在构造函数中初始化。空白的最终变量也可以是静态的,也只能在静态块中进行初始化。我们将详细了解这些内容。首先让我们学习final关键字的基础知识。
如果将任何变量设为final,则不能更改final变量的值(它将是常数)。
有一个final变量,我们将更改此变量的值,但无法更改,因为一旦分配了值的最终变量就永远无法更改。
class Bike9{
final int speedlimit=90;//final variable
void run(){
speedlimit=400;
}
public static void main(String args[]){
Bike9 obj=new Bike9();
obj.run();
}
}//end of class
如果将任何方法作为final方法,则无法覆盖它。
class Bike{
final void run(){System.out.println("running");}
}
class Honda extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda honda= new Honda();
honda.run();
}
}
如果您将任何一class定为final class,则无法扩展它。
final class Bike{}
class Honda1 extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda1 honda= new Honda1();
honda.run();
}
}
回答)是的,final方法是继承的,但是您不能覆盖它。例如:
class Bike{
final void run(){System.out.println("running...");}
}
class Honda2 extends Bike{
public static void main(String args[]){
new Honda2().run();
}
}
在声明时未初始化的最终变量称为空白最终变量。
如果要创建一个在创建对象时已初始化的变量,并且一旦初始化就不能更改,则很有用。例如,员工的PANCARD号。
它只能在构造函数中初始化。
class Student{
int id;
String name;
final String PAN_CARD_NUMBER;
...
}
是的,但仅在构造函数中。例如:
class Bike10{
final int speedlimit;//blank final variable
Bike10(){
speedlimit=70;
System.out.println(speedlimit);
}
public static void main(String args[]){
new Bike10();
}
}
在声明时未初始化的静态最终变量称为静态空白最终变量。它只能在静态块中初始化。
class A{
static final int data;//static blank final variable
static{ data=50;}
public static void main(String args[]){
System.out.println(A.data);
}
}
如果将任何参数声明为final,则无法更改其值。
class Bike11{
int cube(final int n){
n=n+2;//can't be changed as n is final
n*n*n;
}
public static void main(String args[]){
Bike11 b=new Bike11();
b.cube(5);
}
}
不,因为构造函数从不继承。