Java繼承子類的構(gòu)造函數(shù)方式
Java繼承子類的構(gòu)造函數(shù)
每個(gè)Java類都必須有構(gòu)造函數(shù)
如果沒有顯式定義構(gòu)造函數(shù),Java編譯器自動(dòng)為該類產(chǎn)生一個(gè)空的無形參構(gòu)造函數(shù)。
如果已經(jīng)有了顯式的有參構(gòu)造函數(shù),編譯器就不會(huì)再為它自動(dòng)產(chǎn)生了。
每個(gè)子類的構(gòu)造函數(shù)的第一句話
都默認(rèn)調(diào)用父類的無參數(shù)構(gòu)造函數(shù)super()
除非子類的構(gòu)造函數(shù)第1句話是super,而且super語句必須放在第一條,不能出現(xiàn)連續(xù)兩條super語句。
如果構(gòu)造函數(shù)的第1句話不是super,編譯器會(huì)自動(dòng)增加一句super () ;如果構(gòu)造函數(shù)第1句是程序員自己寫的super語句,編譯器就不會(huì)自動(dòng)增加了。
public class A { public A() { System.out.println("11111"); } public A(int a) { System.out.println("33333"); } }
public class B extends A{ public B() { //super(); 編譯器自動(dòng)增加super() //所以先調(diào)用父類中的無慘構(gòu)造函數(shù) System.out.println("22222"); } public B(int a) { super(a); //編譯器不會(huì)自動(dòng)增加super(); //所以先調(diào)用父類中含一個(gè)參數(shù)的構(gòu)造函數(shù) System.out.println("44444"); } public static void main(String[] a) { B obj1 = new B(); System.out.println("======"); B obj2 = new B(10); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Spring插件實(shí)現(xiàn)策略模式的案例詳解
Spring插件提供了一種更實(shí)用的插件開發(fā)方法,它提供了插件實(shí)現(xiàn)擴(kuò)展核心系統(tǒng)功能的核心靈活性,但當(dāng)然不提供核心OSGi功能,如動(dòng)態(tài)類加載或運(yùn)行時(shí)安裝和部署插件,本文就來聊下如何使用spring插件來實(shí)現(xiàn)策略模式,需要的朋友可以參考下2023-05-05Java通過Fork/Join優(yōu)化并行計(jì)算
這篇文章主要為大家詳細(xì)介紹了Java通過Fork、Join來優(yōu)化并行計(jì)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Java中BufferedReader類獲取輸入輸入字符串實(shí)例
這篇文章主要介紹了Java中BufferedReader類獲取輸入輸入字符串實(shí)例,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02