java 构造函数和super
運(yùn)行結(jié)果
這是沒(méi)有參數(shù)的父類(lèi)的構(gòu)造方法 ----------------- 有參數(shù) 父類(lèi)的構(gòu)造方法 ----------------- 這是沒(méi)有參數(shù)的父類(lèi)的構(gòu)造方法 子類(lèi) 有參數(shù) 的構(gòu)造方法哦 ----------------- 這是沒(méi)有參數(shù)的父類(lèi)的構(gòu)造方法 子類(lèi) 有參數(shù) 的構(gòu)造方法哦 ----------------- 這是沒(méi)有參數(shù)的父類(lèi)的構(gòu)造方法 子類(lèi) 無(wú)參數(shù) 的構(gòu)造方法哦 子類(lèi)dictionary. 這是子類(lèi)新添加的方法,父類(lèi)沒(méi)有哦.1 調(diào)用子類(lèi)構(gòu)造函數(shù)的時(shí)候,會(huì)默認(rèn)先調(diào)用父類(lèi)的無(wú)參數(shù)構(gòu)造方法,即相當(dāng)于隱藏了一行代碼 super();
2.在你程序沒(méi)有寫(xiě)構(gòu)造方法時(shí)候,編譯器會(huì)默認(rèn)幫你寫(xiě)一個(gè)無(wú)參數(shù)的構(gòu)造方法,只不過(guò)方法里面沒(méi)有內(nèi)容
然而當(dāng)你編寫(xiě)了構(gòu)造函數(shù)的話,編譯器就不會(huì)再幫你添加無(wú)參數(shù)的構(gòu)造方法了,即使你只編寫(xiě)了有參數(shù)的構(gòu)造方法。
如果你已經(jīng)寫(xiě)了一個(gè)有參數(shù)的構(gòu)造函數(shù),并且你需要一個(gè)沒(méi)有參數(shù)的構(gòu)造函數(shù),你必須自己動(dòng)手寫(xiě)。
只要你有自己寫(xiě)的構(gòu)造函數(shù),不管是哪一種,這都會(huì)想是在跟編譯器說(shuō):老兄,我自己的構(gòu)造函數(shù)不用你管。
例
寫(xiě)了book(i),而沒(méi)有寫(xiě)book()這種無(wú)參數(shù)的,編譯器會(huì)認(rèn)為你既然寫(xiě)了構(gòu)造函數(shù)了,我就不管了,所以不會(huì)為你默認(rèn)添加book() 而子類(lèi)的構(gòu)造函數(shù)是要先調(diào)用父類(lèi)的,默認(rèn)無(wú)參數(shù)的構(gòu)造函數(shù),此時(shí)我們因?yàn)闆](méi)有定義這種,所以報(bào)錯(cuò)。
dictionary()通過(guò)super(i)調(diào)用父類(lèi)構(gòu)造函數(shù)。編譯成功
dictionary(i)沒(méi)有編譯成功,是因?yàn)槟J(rèn) 子類(lèi)構(gòu)造函數(shù) 先調(diào)用無(wú)參數(shù)的父類(lèi)構(gòu)造函數(shù),super() ,然后因?yàn)闆](méi)有嘛,所以錯(cuò)誤。
構(gòu)造函數(shù)的作用
來(lái)初始化對(duì)象的狀態(tài)。
總結(jié)
以上是生活随笔為你收集整理的java 构造函数和super的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python|每日一练|幂函数算法|位运
- 下一篇: 4万字总结,关于数据仓库与数据湖