java中final類 跟final方法
final方法
將方法宣告為final那有兩個原因,第一就是說明你已經知道這個方法提供的功能已經滿足你要求,不需要進行擴充套件,並且也不允許任何從此類繼承的類來覆寫這個方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。第二就是允許編譯器將所有對此方法的呼叫轉化為inline(行內)呼叫的機制,它會使你在呼叫final方法時,直接將方法主體插入到呼叫處,而不是進行例行的方法呼叫,例如儲存斷點,壓棧等,這樣可能會使你的程式效率有所提高,然而當你的方法主體非常龐大時,或你在多處呼叫此方法,那麼你的呼叫主體程式碼便會迅速膨脹,可能反而會影響效率,所以你要慎用final進行方法定義。
final類
當你將final用於類身上時,你就需要仔細考慮,因為一個final類是無法被任何人繼承的,那也就意味著此類在一個繼承樹中是一個葉子類,並且此類的設計已被認為很完美而不需要進行修改或擴充套件。對於final類中的成員,你可以定義其為final,也可以不是final。而對於方法,由於所屬類為final的關係,自然也就成了final型的。你也可以明確的給final類中的方法加上一個final,但這顯然沒有意義。
將方法宣告為final那有兩個原因,第一就是說明你已經知道這個方法提供的功能已經滿足你要求,不需要進行擴充套件,並且也不允許任何從此類繼承的類來覆寫這個方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。第二就是允許編譯器將所有對此方法的呼叫轉化為inline(行內)呼叫的機制,它會使你在呼叫final方法時,直接將方法主體插入到呼叫處,而不是進行例行的方法呼叫,例如儲存斷點,壓棧等,這樣可能會使你的程式效率有所提高,然而當你的方法主體非常龐大時,或你在多處呼叫此方法,那麼你的呼叫主體程式碼便會迅速膨脹,可能反而會影響效率,所以你要慎用final進行方法定義。
final類
當你將final用於類身上時,你就需要仔細考慮,因為一個final類是無法被任何人繼承的,那也就意味著此類在一個繼承樹中是一個葉子類,並且此類的設計已被認為很完美而不需要進行修改或擴充套件。對於final類中的成員,你可以定義其為final,也可以不是final。而對於方法,由於所屬類為final的關係,自然也就成了final型的。你也可以明確的給final類中的方法加上一個final,但這顯然沒有意義。
相關文章
- Java final類Java
- Java final方法Java
- PHP 物件導向 final類與final方法PHP物件
- 請不要再說 Java 中 final 方法比非 final 效能更好了Java
- Java中static、final、static final的區別Java
- Java中final與static final的區別Java
- Java中常見的final類Java
- java中的Static、final、Static final各種用法Java
- JAVA finalJava
- Java中final關鍵字Java
- Java空白finalJava
- 探究final在java中的作用Java
- Java中static、final用法小結Java
- 在Java中,final修飾的類有什麼特點Java
- Java中final修飾的方法是否可以被重寫Java
- Java final資料Java
- java基礎:finalJava
- Java中final關鍵字如何使用?Java
- java中final修飾符的用法Java
- java中被final修飾的常用類有哪些?Java
- Oracle中如何跟蹤SQL或資料庫操作 [final]OracleSQL資料庫
- Java final自變數Java變數
- Java Final關鍵字Java
- [Java物件導向]finalJava物件
- java中的static和final關鍵字Java
- final
- Java 中 final 關鍵字有什麼用Java
- Java中final修飾符都有什麼作用Java
- Java中final、finally、finalize的區別Java
- Java中final,finally,finalize的區別Java
- 深入理解Java中的final關鍵字Java
- Java入門系列之finalJava
- Java 關鍵字之 finalJava
- java之final關鍵字Java
- java中方法的終結者(final關鍵字)Java
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- Java中final、finally和finalize的區別Java
- Java中final,finalize和finally的區別Java