在Java中,final修饰的类有什么特点

2026年09月26日 14:40
有1个网友回答
网友(1):

一、Java中final修饰符既可以修饰类、方法,也可以修饰变量,基本规则如下:
1)用final修饰的类不能被扩展,也就是说不可能有子类;
2)用final修饰的方法不能被替换或隐藏:
  ①使用final修饰的实例方法在其所属类的子类中不能被替换(overridden);
  ②使用final修饰的静态方法在其所属类的子类中不能被重定义(redefined)而隐藏(hidden);
3)用final修饰的变量最多只能赋值一次,在赋值方式上不同类型的变量或稍有不同:
  ①静态变量必须明确赋值一次(不能只使用类型缺省值);作为类成员的静态变量,赋值可以在其声明
   中通过初始化表达式完成,也可以在静态初始化块中进行;作为接口成员的静态变量,赋值只能在其
   声明中通过初始化表达式完成;
  ②实例变量同样必须明确赋值一次(不能只使用类型缺省值);赋值可以在其声明中通过初始化表达式
   完成,也可以在实例初始化块或构造器中进行;
  ③方法参数变量在方法被调用时创建,同时被初始化为对应实参值,终止于方法体(body)结束,在此
   期间其值不能改变;
  ④构造器参数变量在构造器被调用(通过实例创建表达式或显示的构造器调用)时创建,同时被初始化
   为对应实参值,终止于构造器体结束,在此期间其值不能改变;
  ⑤异常处理器参数变量在有异常被try语句的catch子句捕捉到时创建,同时被初始化为实际的异常对象
   ,终止于catch语句块结束,在此期间其值不能改变;
  ⑥局部变量在其值被访问之前必须被明确赋值;