2006年12月24日 星期日

重新定義方法
任何類別物件都有一個父類別 是 Object
因此也繼承了這個 Object 的方法

我們可以加以改寫橫跨多個 class 的方法
首先改寫 Account.java
重新定義方法,就會把 Object 的 toString 方法覆蓋
public String toString(){
 return number+"\t"+name+"\t"+balance;
}
接下來改寫 SavingAccount.java
重新定義方法
public String toString(){
 return super.toString() + "\t"+rate;
}
接下來改寫 CreditAccount.java
重新定義方法
public String toString(){
 return super.toString() + "\t"+limit;
}
最後執行
public class Test2 {
 public static void main(String[] args) {
  CreditAccount ca = new CreditAccount(101,"Simon",200,0.02,30000);
  System.out.println( ca.toString() );
 }
}
//結果顯示 101 Simon 200.0 0.02 30000.0
就可以看到結果。

垃圾收集
當物件記憶體被剷除的時候,物件會發生一個 finalize() 物件
這也是 Object 物件的一個方法。
首先在 Account.java 中加入
protected void finalize(){
 System.out.println(number+"clean.");
}
測試程式
public class Test2 {
 public static void main(String[] args) {
  CreditAccount ca = new CreditAccount(101,"Simon",200,0.02,30000);
  System.out.println( ca );
  ca = null;
  System.gc();
 }
}
會看到記憶體垃圾回收的訊息

沒有留言: