java——階段性整理(方法的重載重寫和一些關鍵字)


一、方法的重載和方法的重寫

重載: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”的關系

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM