1. 程式人生 > >Java中final、finally、finalize的區別

Java中final、finally、finalize的區別

1.2 定義方法當final用來定義一個方法時,會有什麼效果呢?正如大家所知,它表示這個方法不可以被子類重寫,但是它這不影響它被子類繼承。我們寫段程式碼來驗證一下:

Java程式碼public class ParentClass {     public final void TestFinal() {          System.out.println("父類--這是一個final方法");     }}public class SubClass extends ParentClass {     /**     * 子類無法重寫(override)父類的final方法,否則編譯時會報錯     */     // public void www.gzlij.com TestFinal() {     // System.out.println("子類--重寫final方法");     // }     public static void main(String[] args) {          SubClass sc = new SubClass();          sc.TestFinal();     }}

這裡需要特殊說明的是,具有private訪問許可權的方法也可以增加final修飾,但是由於子無法繼承private方法,因此也無法重寫它。編譯器在處理private方法時,是按照final方來對待的,這樣可以提高該方法被呼叫時的效率。不過子類仍然可以定義同父類中private方法具有同樣結構的方法,但是這並不會產生重寫的效果,而且它們之間也不存在必然聯絡。