1. 程式人生 > >有參構造方法的作用和無參構造方法的作用

有參構造方法的作用和無參構造方法的作用

轉載自http://wenda.so.com/q/1371509836068490(收藏,自己看看,也希望提供點幫助)

Java無參構造方法的作用
class Person{
private String name;// 表示人的姓名
private int age ;// 表示人的年齡
public void tell(){// 定義說話的方法
System.out.println("姓名:" + this.getName() + ",年齡:" + this.getAge()) ;
}
public Person(){
System.out.println("########");
}
public void setName(String n){
name = n ;
}
public void setAge(int a){
if(a>=0&&a<=200){
age = a ;
}
}
public String getName(){
return name ;
}
public int getAge(){
return age ;
}
};
public class OODemo10{
public static void main(String args[]){
Person per = new Person() ;// 例項化物件
System.out.println(per.getName());
System.out.println(per.getAge());
}
};


隨便拷貝了一個程式碼
問題:我知道結果會輸出
########
null
0

我們說構造方法(這裡指的是有參的構造方法)的主要目的是為了類中的屬性初始化,那麼無參構造方法的目的

是不是也是這樣呢?

並不是這樣的,而是因為子類繼承父類的時候會自動繼承預設的建構函式(這裡指無參的建構函式)。而子類裡面

已經有一個帶有引數的構造函數了,如果沒有寫那個預設的不帶引數的建構函式的話,繼承的時候就會報錯,因為系

統不知道要繼承哪個建構函式,必須明確的使用super()關鍵字來描述。所以一般為了避免這種錯誤的發生,在有帶多

個建構函式的類裡面都會寫一個不帶引數的建構函式。