Logo

郎哥编程

final类

2019-12-24 243

final关键字也可以用来修饰类,用final关键字修饰的类,不能被继承并且类的内容不能被修改。

案例1:新建ErrorConstant(错误信息类),在ErrorConstant类提供常用错误信息,用于程序报错处理。ErrorConstant用final关键字修饰。然后再建立一个ErrorConstant类的子类SubErrorConstant,检测该类是否能够继承ErrorConstant类。

在PCoreUnit3项目新建info包,在info包下新建ErrorConstant类。创建ErrorConstant类时,需要在New Java Class对话框中,检查final检查项。如下图所示:

 image.png    

创建Final类对话框

代码如下:

package info;
 
/** 
* @ClassName: ErrorConstant 
* @Description: 包与类的高级特性(final类)案例1  
* @author 编程训练营 
* @date 
* 
*/
 
public final class ErrorConstant {
    // 定义错误信息
    static final String  LONIN_NAME_ERROR = "登录名称错误";
    static final String  LONIN_PSW_ERROR = "登录密码错误";
}
}

ErrorConstant类定义了两个String类型的静态常量,用于表示登录名称和登录密码错误信息。

在info包下新建ErrorConstant类的子类SubErrorConstant类。代码截图如下:


image.png

SubErrorConstant代码截图

从SubErrorConstant类代码截图可以看出,继承ErrorConstant类时,编译器报错,错误语句是第20行,主要错误信息是要求移除ErrorConstant类的final关键字,错误信息如下图所示。

image.png

由此可见,当类使用final关键字修饰后,该类不能被其它类继承。

在info包下新建测试类ErrorConstantTest,输出ErrorConstant的静态常量。代码如下:

package info;
 
/** 
* @ClassName: ErrorConstantTest 
* @Description: 包与类的高级特性(final类)案例1  
* @author 编程训练营 
* @date 
* 
*/
 
public class ErrorConstantTest {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 输出错误信息
       System.out.println(ErrorConstant.LONIN_NAME_ERROR);
       System.out.println(ErrorConstant.LONIN_PSW_ERROR);
 
    }
 
}

程序执行结果如下图所示:

image.png

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论