首頁 >Java >java教程 >自動產生構造方法的java程式碼實例

自動產生構造方法的java程式碼實例

Y2J
Y2J原創
2017-05-03 15:21:141487瀏覽

這篇文章主要介紹了Java中自動生成構造方法詳解的相關資料,需要的朋友可以參考下

#Java中自動生成構造方法詳解

#每個類別在沒有宣告建構方法的前提下,會自動產生一個不帶參數的建構方法,如果類別一但宣告有建構方法,就不會產生了.證明如下:

#例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();//创建student类的对象 
  } 
} 
//输出结果:父类-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);//创建student类的对象 
  } 
} 
//没有输出结果

例1說明:student類別自動產生student() {super();}(前提是:student類別沒有宣告建構方法的前提下) 'super()'是用來呼叫父類別的建構方法.

例2中的person()方法沒有被呼叫,說明student類別沒有產生student(){super() ;}方法.這是因為student類別已經宣告建構方法,預設的那個不帶參數的建構方法就不產生了.

##再舉例:

class person 
{ 
  person(int z){} 
} 
class student extends person 
{ 
 
} 
 
class Rt 
{ 
  public static void main(String[]args) 
  { 
    student student_dx=new student();//创建student类的对象 
  } 
} 
/*报错: 
exercise14.java:8: 找不到符号 
符号: 构造函数 person() 
位置: 类 person 
class student extends person 
^ 
1 错误 
*/

說明:student類別自動產生了一個student(){super();},但是由於person類別已經聲明了構造方法,預設的那個帶參數的建構方法沒有產生.,所以報錯中提到找不到建構子person()

以上是自動產生構造方法的java程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn