簡單例子如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class FinalDemo1 { static final double PI = 3.141592653589793 ; public final void test() { System.out.println( "這是final方法" ); } public static void main(String[] args) { final double pi = 3.141592653589793 ; FinalDemo1 fd = new FinalDemo1(); System.out.println(fd.PI); System.out.println(pi); fd.test(); } } /* 《程式語言教學誌》的範例程式 檔名:FinalDemo1.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */ |
編譯後執行,結果如下

以下例子示範重新給值給 final 變數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class FinalDemo2 { static final double PI = 3.141592653589793 ; public final void test() { System.out.println( "這是final方法" ); } public static void main(String[] args) { final double pi = 3.141592653589793 ; FinalDemo1 fd = new FinalDemo1(); pi = 3.14 ; System.out.println(fd.PI); System.out.println(pi); fd.test(); } } /* 《程式語言教學誌》的範例程式 檔名:FinalDemo2.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */ |
編譯會發生錯誤

以下例子示範繼承後改寫 final 方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class FinalDemo1 { static final double PI = 3.141592653589793 ; public final void test() { System.out.println( "這是final方法" ); } } class FinalDemo3 extends FinalDemo1 { public final void test() { System.out.println( "這是改寫過的final方法" ); } public static void main(String[] args) { final double pi = 3.141592653589793 ; FinalDemo1 fd = new FinalDemo1(); System.out.println(fd.PI); System.out.println(pi); fd.test(); } } /* 《程式語言教學誌》的範例程式 檔名:FinalDemo3.java 功能:示範物件導向的基本觀念 作者:張凱慶 時間:西元 2010 年 10 月 */ |
編譯會發生錯誤

中英文術語對照 | |
---|---|
成員 | member |
常數 | constant |
屬性 | field |
區域變數 | local variable |
方法 | method |
繼承 | inherit |
改寫 | override |
參考資料
http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html
http://java.sun.com/docs/books/jls/third_edition/html/classes.html
http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html
http://java.sun.com/docs/books/jls/third_edition/html/classes.html
2 則留言:
而方法 (method) 繼承 (inherit) 後不可被改寫 (overload) →是override吧!
overload和oberride是不一樣的東西喔!
這邊打錯字了,已修改,感謝指正 ^_^
張貼留言