final 與 static 的區別

均可以修飾類、方法、成員變量面試

static能夠修飾類的代碼塊,final不能夠函數

static不能夠修飾方法內局部變量,final能夠this

 

static修飾表示靜態或全局.net

static修飾的代碼塊表示靜態代碼塊,當JVM加載類時,只會被建立一次code

static修飾的變量能夠從新賦值對象

static方法中不能用this和super關鍵字blog

由於this表明的是調用這個函數的對象的引用,而靜態方法是屬於類的,不屬於對象,靜態方法成功加載後,
對象還不必定存在。

this表明對本類對象的引用,指向本類已建立的對象。

super表明對父類對象的引用,指向父類對象。

靜態優先於對象存在,方法被static修飾以後,方法先存在,所需的父類引用對象晚於該方法的出
現,也就是super所指向的對象還沒出現,固然就會報錯。

static方法必須被實現,而不能是抽象的abstract繼承

static方法只能被static方法覆蓋get

 

final修飾表示常量、一旦建立不可被修改變量

final標記的成員變量必須在聲明的同時賦值,或在該類的構造方法中賦值,不可從新賦值

final方法不能被子類重寫

final類不能被繼承,沒有子類,final類中的方法默認是final的

final不能用於修飾構造方法

private類型的方法默認是final類型的

 

天天一道面試題,持續更新@目錄

相關文章
相關標籤/搜索