Java中自動生成構(gòu)造方法詳解
Java中自動生成構(gòu)造方法詳解
每個(gè)類在沒有聲明構(gòu)造方法的前提下,會自動生成一個(gè)不帶參數(shù)的構(gòu)造方法,如果類一但聲明有構(gòu)造方法,就不會產(chǎn)生了.證明如下:
例1:
class person { person(){System.out.println("父類-person");} person(int z){} } class student extends person { // student(int x ,int y){super(8);} } class Rt { public static void main(String[]args) { student student_dx=new student();//創(chuàng)建student類的對象 } } //輸出結(jié)果:父類-person
例2:
class person { person(){System.out.println("父類-person");} person(int z){} } class student extends person { student(int x ,int y){super(8);} } class Rt { public static void main(String[]args) { student student_dx=new student(3,4);//創(chuàng)建student類的對象 } } //沒有輸出結(jié)果
例1說明:student類自動生成student() {super();}(前提是:student類沒有聲明構(gòu)造方法的前提下) 'super()'是用來調(diào)用父類的構(gòu)造方法.
例2中的person()方法沒有被調(diào)用,說明student類沒有產(chǎn)生student(){super();}方法.這是因?yàn)閟tudent類已經(jīng)聲明構(gòu)造方法,默認(rèn)的那個(gè)不帶參數(shù)的構(gòu)造方法就不產(chǎn)生了.
再舉例:
class person { person(int z){} } class student extends person { } class Rt { public static void main(String[]args) { student student_dx=new student();//創(chuàng)建student類的對象 } } /*報(bào)錯(cuò): exercise14.java:8: 找不到符號 符號: 構(gòu)造函數(shù) person() 位置: 類 person class student extends person ^ 1 錯(cuò)誤 */
說明:student類自動產(chǎn)生了一個(gè)student(){super();},但是由于person類已經(jīng)聲明了構(gòu)造方法,默認(rèn)的那個(gè)帶參數(shù)的構(gòu)造方法沒有產(chǎn)生.,所以報(bào)錯(cuò)中提到找不到構(gòu)造函數(shù)person()
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java中如何使用正則表達(dá)式提取各種類型括號中的內(nèi)容
最近在工作中遇到一個(gè)問題,就是需要一個(gè)字符串中每一個(gè)中括號里的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Java中如何使用正則表達(dá)式提取各種類型括號中的內(nèi)容,需要的朋友可以參考下2023-06-06簡單了解java volatile關(guān)鍵字實(shí)現(xiàn)的原理
這篇文章主要介紹了簡單了解volatile關(guān)鍵字實(shí)現(xiàn)的原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Spring中的ImportBeanDefinitionRegistrar接口詳解
這篇文章主要介紹了Spring中的ImportBeanDefinitionRegistrar接口詳解,ImportBeanDefinitionRegistrar接口是也是spring的擴(kuò)展點(diǎn)之一,它可以支持我們自己寫的代碼封裝成BeanDefinition對象,注冊到Spring容器中,功能類似于注解@Service @Component,需要的朋友可以參考下2023-09-09SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解
我們知道內(nèi)存讀取速度遠(yuǎn)大于硬盤讀取速度,當(dāng)需要重復(fù)獲取相同數(shù)據(jù)時(shí),一次一次的請求數(shù)據(jù)庫或者遠(yuǎn)程服務(wù),導(dǎo)致在數(shù)據(jù)庫查詢或者遠(yuǎn)程方法調(diào)用上小號大量的時(shí)間,最終導(dǎo)致程序性能降低,這就是數(shù)據(jù)緩存要解決的問題,學(xué)過計(jì)算機(jī)組成原理或者操作系統(tǒng)的同學(xué)們應(yīng)該比較熟悉2022-10-10Spring?boot事務(wù)無效報(bào)錯(cuò):Transaction?not?enabled問題排查解決
在業(yè)務(wù)代碼中經(jīng)常需要保證事務(wù)的原子性,但是有的時(shí)候確實(shí)是出現(xiàn)事務(wù)沒有生效,這篇文章主要給大家介紹了關(guān)于Spring?boot事務(wù)無效報(bào)錯(cuò):Transaction?not?enabled問題排查的相關(guān)資料,需要的朋友可以參考下2023-11-11利用Java讀取Word表格中文本和圖片的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于如何利用Java讀取Word表格中文本和圖片的相關(guān)資料,主要利用的是free spire.doc.jar 包,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07Java7到Java17之Switch語句進(jìn)化史示例詳解
這篇文章主要為大家介紹了Java7到Java17之Switch語句進(jìn)化史示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01