final、static、abstract的區別和聯繫

  • final和abstract不能一同出現

  • static和abstract不能一同出現

  • 允許出現final static描述的變量(不能被修改的靜態屬性)

  • 允許出現final static描述的方法(不能被重寫的靜態方法)

final

final修飾類:該類不能被繼承,不能加在抽象類中

final修飾方法:該方法不能被重寫,但可以被繼承

final修飾屬性:該屬性不能被重新賦值,但可以被繼承,可以在定義或構造函數中初始化

final修飾局部變量:該變量只能被賦值一次(常量)

abstract

abstract修飾類:該類不能實例化對象,但可以包含非abstract的方法

abstract修飾方法:該方法沒有方法體,需要被重寫才能使用

abstract的子類:必須完全重寫父類的抽象方法,或者自己本身也被定義爲abstract

abstract不能修飾屬性和局部變量

static

static修飾代碼塊:稱爲靜態代碼塊,可以初始化類中的static屬性,但不能初始化非static的屬性

static修飾方法:static方法只能使用static的方法和屬性,不能使用非static的方法和屬性。但非static方法可以訪問static方法和屬性;static方法中不能出現this關鍵字。可直接通過類名.方法名()訪問。

static修飾屬性:不能修飾局部變量,可直接通過類名.靜態屬性名訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章