java中super關(guān)鍵字的作用 java中,帶參數(shù)的構(gòu)造方法和不帶參數(shù)構(gòu)造方法用法有什么不同???
java中,帶參數(shù)的構(gòu)造方法和不帶參數(shù)構(gòu)造方法用法有什么不同啊?讓我給你一個例子:有一個circle類如下:class circle{private double r=0;public circle(
java中,帶參數(shù)的構(gòu)造方法和不帶參數(shù)構(gòu)造方法用法有什么不同???
讓我給你一個例子:有一個circle類如下:class circle{private double r=0;public circle(){public circle(double x){r=x}public double setr(double x){r=x}然后使用class circle=new circle()圓.setR(5) 這兩句話相當(dāng)于圓=新圓(5),參與構(gòu)造和非參數(shù)構(gòu)造的區(qū)別在于,參數(shù)構(gòu)造可以在創(chuàng)建的對象為新對象時同時為其賦值
~]。問題是,當(dāng)我們創(chuàng)建一個類時,如果我們不創(chuàng)建一個構(gòu)造方法(即使它是非參數(shù)的)。JVM幫助我們創(chuàng)建一個默認(rèn)構(gòu)造函數(shù),也稱為無參數(shù)構(gòu)造函數(shù)。但是,如果我們創(chuàng)建一個構(gòu)造函數(shù),JVM將不再為我們生成默認(rèn)的構(gòu)造函數(shù)。有時需要寫出默認(rèn)構(gòu)造函數(shù),即無參數(shù)構(gòu)造函數(shù)。因此,當(dāng)類被繼承時,子類將在默認(rèn)情況下調(diào)用無參數(shù)構(gòu)造函數(shù)。如果要顯示調(diào)用父類的構(gòu)造函數(shù),可以在子類的構(gòu)造函數(shù)中使用super()的第一句話。(構(gòu)造函數(shù)中只能調(diào)用一次構(gòu)造函數(shù))。如果不在父類中編寫無參數(shù)構(gòu)造函數(shù),則必須在子類構(gòu)造函數(shù)中調(diào)用父類(在第一句中編寫)中的無參數(shù)構(gòu)造函數(shù)。