final关键字

 


 

final 关键字

    final关键字 修饰            表示该类 不能被继承;

    final关键字 修饰 成员变量,表示该成员变量必须是常量;

    final关键字 修饰 方法 ,      表示该方法不能被重写;

 


 

演示1:final修饰 类

public final class Dad { // 定义一个Dad类

}

public
class Son extends Dad { // 定义一个Son类 继承 Dad 类
// 报错The type Son cannot subclass the final class Dad

}

Son类 继承 Dad类,

发生报错: The type Son cannot subclass the final class Dad

报错原因:  一个类 不能继承 一个被 final 修饰的 类

即,final关键字修饰一个类,表示该类不能被继承


 演示2:final修饰 成员变量

public final class Dad {
    private final int num;    // 报错:The blank final field num may not have been initialized

 

}
报错原因: 成员变量 num 没有初始化赋值

修改代码:给 num变量 赋值
public final class Dad {
    private final int NUM = 0;   // 编译通过


}
final关键字 修饰 成员变量,则该变量在声明的同时必须初始化赋值。
即,final关键字修饰成员变量,表示该变量必须是常量;
(根据标识符命名规范:常量名全部使用大写)


演示3 final修饰 方法
public class Dad {   
     
    
public final void show() {    // 父类Dad类 的show()方法被final修饰
    
    System.out.println("我是show()方法啊....");
}


}

public class Son extends Dad {
@Override // 重写父类Dad中的show()方法
public void show() {

// 报错:Cannot override the final method from Dad System.out.println(
"我是重写之后的show()方法...."); } }

报错原因:子类不能 重写 父类中被final修饰的方法

即,被final修饰的方法,表示不能被重写

 

   

原文地址:https://www.cnblogs.com/penguin1024/p/11733151.html