1、static修飾符
static作用於代碼塊:稱作靜態代碼塊(可以初始化static field,不能初始化非static field);
static作用於methods:
static方法只能訪問static 方法,不能訪問非static 方法
static 方法只能訪問static field, 不能訪問非static field
非static 方法可以訪問static fields 和 static methods
static method的兩種訪問方式oject.method和class.method, 非static method只有object.method一種訪問方式
static method中不支持this和super
static不可以作為局部變量(局部變量包括:函數級局部變量和塊級局部變量)
2、final修飾符
final類不能被繼承(不能有abstract final class)(final類內的method自動為final,但不包括屬性)
final方法可以被繼承但不能被override 不能有abstract final method
final屬性不能被重新賦值(可以被繼承,但不可以修改)定義時可以初始化,也可以不初始化,而在語句塊中初始化或者構造函數中初始化(最晚要在構造函數中初始化,只能初始化一次)
final屬性只能人為賦值一次繼承與父類的final屬性不能被修改
final可以修飾局部變量表示局部常量(方法級局部變量(形參及局部變量,方法體級局部變量)或塊級局部變量)
3、abstract修飾符:
abstract類不能實例化對象
abstract類可以不包含abstract方法,但是只要有一個abstract方法那么該類必須為abstract類
abstract方法沒有方法體,需要被override
abstract類的子類要么實現其父類全部的abstract method,要么也是一個abstract類
abstract不能修飾屬性
abstract不能修飾局部變量(方法級局部變量(形參級局部變量,方法體級局部變量)或塊級局部變量)
4、final、static、abstract之間的關系:
final、abstract不能共存(無論在類、方法、屬性、局部變量上都不能共存)
static、abstract不能共存(無論在類、方法、屬性、局部變量上都不能共存)
可以出現final static field(該類成員屬性不能被修改)
可以出現final static method(該類成員方法不能被override)