Java Final关键字示例

Java中的Final关键字是一个修饰符,用于限制用户执行不需要的代码或防止代码或值被更改。 可以在3个上下文中使用此关键字。 他们是:

  1. 最终关键字作为变量修饰符
  2. 最终关键字作为方法修饰符
  3. Final关键字作为类修饰符

每个上下文都有其自身的意义和暗示的限制。 它们将在下面详细讨论。

1. FINAL关键字作为变量修饰符

每个上下文都有其自己的不同目的。 final ,当与变量一起使用时,专门用于限制用户在代码中的其他任何地方更改值。 final变量一旦初始化,其值就无法更改。

如果final变量只是声明但未初始化,则允许在整个代码中为final变量分配一个值。 final变量值的任何多次更改将导致编译错误。

例如,如果尝试编译,下面的代码将给出编译时错误。

FinalVariableExample.java
package com.mkyong;
public class FinalVariableExample {

	final int count = 0;
	
	public FinalVariableExample() {
		count++; //The final field FinalVariableExample.count cannot be assigned
	}

}

输出量

Output: Compile Time error

2. FINAL关键字作为方法修饰符

final ,当与method一起使用时,它限制了继承的类以覆盖method的定义。 例如,下面的示例给出了一个编译时错误,因为FinalMethodChild类试图覆盖final方法testCode()

FinalMethodParent.java
package com.mkyong;

public class FinalMethodParent {

	final void testCode(){
		System.out.println("This is a final method");
	}

}

class FinalMethodChild extends FinalMethodParent{

	//Cannot override the final method from FinalMethodParent
	void testCode(){
		System.out.println("This is overriding method");
	}

}

输出量

Output: Compile Time error

3. FINAL关键字作为类修饰符

final ,当用于一个类的修饰符时,它限制该类被任何其他类扩展或继承。 例如,如果您尝试编译以下代码,则它会给出编译时错误,因为FinalClassParent类是无法进一步扩展的最终类。

FinalClassParent.java
package com.mkyong;

public final class FinalClassParent {

	final void testCode(){
		System.out.println("This is a final method");
	}

}

//The type FinalClassChild cannot subclass the final class FinalClassParent
class FinalClassChild extends FinalClassParent{

	void testCode(){
		System.out.println("This is overriding method");
	}

}

输出量

Output: Compile Time error

参考文献

  1. 了解班级成员
  2. 最终关键字Wiki页面

翻译自: https://mkyong.com/java/java-final-keyword-example/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值