Java 構造方法、final


構造方法:構造(創建)對象時使用的方法。

  • 方法名必須與類名稱完全相匹配;
  • 構造方法不需要返回類型
  • 構造方法不能被static、final等關鍵字修飾,且不能有return返回語句;
  • 伴隨着new被調用
  • 構造方法不會被繼承,但是子類創建對象時會執行父類的構造方法,因為子類中所有構造方法的第一行有默認的隱式super()語句

1.隱式無參構造方法

默認自帶的,無參,並且方法體是空的,啥都沒有。如果重寫了任何一個,則這個空的就沒了。

2.顯式無參構造方法

重寫默認自帶的構造方法,在方法體里寫點東西

3.顯式有參構造方法

一般用於將參數值 傳給 對象里的屬性值

 

關於構造方法的幾種情況

1.重寫構造方法后,原本的默認無參構造方法就沒了,但是new的時候需要執行,如果重寫的構造方法時有參,則需要傳參; 如果父類只有有參構造方法,則子類構造方法也需要參數,此時需要寫super(參數);為了執行父類的構造方法。

2.父類構造方法只能在子類構造方法里被調用,用super();調用

3.調用父類普通方法,super.方法名();

 

final(不可變)

  • final修飾的不能被繼承,即和abstract矛盾
  • final修飾的方法不能被繼承或重寫,即不能被改變,private修飾的方法也是這樣
  • final修飾的變量需要定義初始值,並且不能修改。定義初始值的方式有2中,直接賦值 和 通過構造方法賦值(在new的時候初始化),都只初始化一次並且之后不可被修改。static也只初始化一次,但是static的變量可以改變
  • final修飾的對象可以改變屬性值,但是不能改變該對象的引用地址

 牛客刷題:

1.系統總是自動給一個類提供構造方法。錯。只有不聲明構造方法時,系統才提供默認無參構造方法。


免責聲明!

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



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