標籤:
一、方法的重載和方法的重寫
重載:overload,同一給類中方法名相同,參數不同。作用:一種行為提供多種實現方式並提高可讀性。
重寫:override,子類繼承父類的方法,內容不同。作用:父類方法無法滿足子類的要求,子類通過方法重寫滿足要求
二、簡述static關鍵字的作用。
static可以修飾變數、方法、代碼塊和內部類,分別稱為靜態變數,靜態方法,靜態代碼塊和靜態內部類。
1)靜態遍曆屬於這個類所有,即由該類建立的所有對象共用同一個static變數。
a)不管有多少個對象,靜態變數只有一份。
b)靜態變數存放在方法區中。
c)可通過對象名.靜態變數名,類名.靜態變數名兩種方式訪問。
d)靜態變數在第一次使用類的時候分配空間。
2)靜態方法
可通過對象名.靜態方法名和類名.靜態方法名兩種方式訪問。
3)靜態代碼塊
當類第一次使用時執行靜態代碼塊,且只被執行一次,主要作用是實現static屬性的初始化
4)靜態內部類
屬於整個外部類,而不屬於外部類的每個對象。
三、final和abstract關鍵字的作用
final和abstract是功能相反的兩個關鍵字,可以對比記憶
1)abstract可以用來修飾類和方法,不能用來修飾屬性和構造方法;使用abstract修飾的類是抽象類別,需要被繼承,使用abstract修飾的方法是抽象方法,需要被子類重寫。
2)final可以修飾類、方法和屬性,不能修飾構造方法。使用final修飾的類不能被繼承,使用final修飾的方法不能被重寫,使用final修飾的變數的值不能被修改,被final修飾的變數值稱為常量。
3)特別注意
final修飾基本類型變數,其值不能改變。final修飾參考型別變數,棧記憶體中的引用不能改變,但是所指向的堆記憶體中的對象的屬性值仍舊可以改變。
四、介面和抽象類別的相同和不同之處
相同點
- 抽象類別和介面均包含抽象方法
- 抽象類別和介面都不能執行個體化
兩者的區別主要體現在兩個方面:文法方面和設計理念方面。
文法方面的區別是比較低層次的,非本質的。
不同點
- 介面中只能定義全域靜態常量。抽象類別中可以定義常量和變數
- 介面中所有的方法都是全域抽象方法。抽象類別中可以有0個、1個或多個,甚至全部都是抽象方法。
- 抽象類別中可有構造方法,但不能執行個體化。介面中不能定義構造方法。
- 一個類只能有一個父類(可以是抽象類別),但可以實現多個介面
二者的主要區別還是在設計理念上,其決定了某些情況下到底使用抽象類別還是介面
- 抽象類別體現了一種繼承關係,目的是複用代碼。父類和子類之間必須存在“is-a”的關係,即父類和子類在概念本質上應該是相同的。
- 介面定義了“做什麼”,而實作類別負責完成“怎麼做”,體現了功能(規範)和實現分離的原則。介面和實現之間可以認為是一種“has-a”的關係
java——階段性整理(方法的重載重寫和一些關鍵字)