方法重載(兩同一不同)
- 同一個類中,方法名相同,形參列表不同
至於返回值類型,訪問修飾符與方法重載沒有任何關系
可變參數列表
可變參數必須是最后一個參數
帶可變參數的方法最后被訪問(調用)
數組可以傳給可變參數,反之不行
同類型數組與可變參數無法構成方法重載
一個方法只能有一個可變參
方法重寫(兩同兩小一大)
- 方法名 相同,形參列表 相同
- 子類方法 返回值類型 必須比父類方法返回值類型“更小”或相等;
- 子類方法 拋出的異常 比父類方法聲明拋出的異常“小”或相等
- 子類方法的 訪問權限 比父類大或相等
- 父類中靜態方法無法被子類重寫
當子類重寫了父類的方法后,子類對象將無法訪問父類中被重寫的方法,但是可以調用(super)
如果父類方法具有private訪問權限,該方法對子類是隱藏的,子類無法重寫
final修飾符
- final不能修飾構造方法
- final修飾類,該類不允許被繼承
- 系統不會對 final修飾的成員變量(包括類變量和實例變量) 隱式的初始化
- final修飾的局部變量在定義時可以不指定初始值,在之后的代碼中賦值且只能賦值一次
- final修飾基本類型變量不能對基本類型變量重新賦值,final修飾引用類型變量,final只保證引用變量引用的地址不會改變
- final修飾的成員變量必須顯示的指定初始值(只能在 非靜態初始化塊 或 聲明該實例變量 或 構造器 中指定初始值),
- final修飾類變量,(必須且只能在) 靜態初始化塊中指定初始值 或 聲明該變量時指定初始值
不管是類變量還是實例變量還是局部變量,當滿足條件:
使用final修飾符
在定義該變量時指定了初始值
該初始值在編譯時就被確定下來
則該變量相當於一個直接量