50 Java final 常量池 final方法

本文深入探讨Java中的final关键字,包括final如何应用于变量、方法及类,解释final变量的字符串拼接特性,final方法的不可重写性和final类的不可继承性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * java 会使用常量池来管理曾经用过的字符串直接量,例如,只想能够string a="java";语句之后
 * 系统的字符串池中就会缓存一个字符串“java”;如果程序再次执行 String b=“java”,系统将会让
 * b直接指向字符串池中的“java” 字符串,因此a==b将会返回true
 */
public class FinalReplaceTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//下面定义了4个final “宏变量”
		final int a=5+2;
		final double b=1.2/3;
		final String str="科技"+"Java";
		final String book="科技"+"Java:"+99.9;
		//下面的book2变量的值因为调用了方法,所以无法在编译时被确认下来
		final String book2="科技Java:"+String.valueOf(99.9);
		System.out.println(book=="科技Java:99.9");//true
		System.out.println(book2=="科技Java:99.9");//false
		
	}

}


final方法

/*
 * final 修饰的方法不可被重写,如果处于某些原因,不希望自乐ichognxie弗雷的某个方法
 * 可以用final修饰该方法
 * 例如:Object类里就有个final方法:getClass(),
 */
//下面程序师徒重写final方法,将会引发编译错误
public class FinalMethod {
	//用final修饰的方法
	public final void test(){};

}
class Sub extends FinalMethod{
	//下面方法定义将出现编译错误,不能重写final方法
	public void text();//编译错误
}

/*
 * 对于一个private 方法,因为它仅 在当前类中可见,其子类无法访问该类方法,所以
 * 子类无法重写该方法——如果子类中定义一个鱼弗雷private方法有相同方法名、相同
 * 形参列表、相同返回值类型的方法,也不是方法重写,知识重新定义了一个新方法。
 * 因此即使使用能够final修饰一个private访问权限的方法,依然可以在其子类中
 * 定义与给方法具有相同方法名、相同形参列表、相同返回值类型的方法
 */
/**
 * “重写”父类 private fianl 方法
 * @author Administrator
 *
 */
public class PrivateFinalMethod {

	private final void  test(){};
}
class Sub2 extends PrivateFinalMethod{
	//下面的方法定义不会出现问题
	public void test(){};
}
/**
 * final 修饰的方法知识不能被重写,完全可以被重载
 * @author Administrator
 *
 */
class FinalOverload{
	public final void test(){};
	public final void test(String arg){
		
	}
}


fianl 类

/**
 * fianl 修饰的类不可以有子类 例如java.lang.Math 就是一个final类,他不可以有子类
 * 为了保证某个类不可被继承,则可以使用final修饰这个类
 * @author Administrator
 *
 */
public final class FinalExtends {

}
//下面的类定义将出现编译错误
class Sub3 extends FinalExtends{
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值