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()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類是無法進一步擴展的最終類。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
參考文獻:翻譯自: https://mkyong.com/java/java-final-keyword-example/