Java關(guān)鍵字final、static使用總結(jié)

 

一、final
        根據(jù)程序上下文環(huán)境,Java關(guān)鍵字final有“這是無法改變的”或者“終態(tài)的”含義,它可以修飾非抽象類、非抽象類成員方法和變量。你可能出于兩種理解而需要阻止改變:設(shè)計(jì)或效率。

        final類不能被繼承,沒有子類,final類中的方法默認(rèn)是final的。
        final方法不能被子類的方法覆蓋,但可以被繼承。
        final成員變量表示常量,只能被賦值一次,賦值后值不再改變。
        final不能用于修飾構(gòu)造方法。
        注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認(rèn)是final類型的。

 

1、final類
        final類不能被繼承,因此final類的成員方法沒有機(jī)會(huì)被覆蓋,默認(rèn)都是final的。在設(shè)計(jì)類時(shí)候,如果這個(gè)類不需要有子類,類的實(shí)現(xiàn)細(xì)節(jié)不允許改變,并且確信這個(gè)類不會(huì)載被擴(kuò)展,那么就設(shè)計(jì)為final類。

2、final方法
        如果一個(gè)類不允許其子類覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為final方法。
        使用final方法的原因有二:
        第一、把方法鎖定,防止任何繼承類修改它的意義和實(shí)現(xiàn)。
        第二、高效。編譯器在遇到調(diào)用final方法時(shí)候會(huì)轉(zhuǎn)入內(nèi)嵌機(jī)制,大大提高執(zhí)行效率。
        例如:

public class Test1 { 
public static void main(String[] args) { 
    // TODO 自動(dòng)生成方法存根 

public 

網(wǎng)友評(píng)論