2011-11-08 154 views
2

這是我的代碼,真的很簡單。它不是功課,我自學的Java通過教育書:我的toString()方法不覆蓋日曆toString()方法


import java.util.*; 

/** @author Chris */ 

public class Exercise9_9 extends GregorianCalendar 
{ 
    public static void main(String[] args) 
    { 
     String[] stringList = {"s", "c", "b", "f", "e", "q", "g", "w", "i", "o"}; 
     Integer[] integerList = {5, 7, 8, 9, 6, 5, 4, 1, 2, 3}; 
     Calendar[] calendarList = new Calendar[10]; 

     for (int a = 0; a < calendarList.length; a++) 
     { 
      calendarList[a] = new GregorianCalendar(); 
      calendarList[a].set(Calendar.YEAR, ((int)Math.random()* 1000)); 
     } 

     System.out.println("Largest String: " + max(stringList)); 
     System.out.println("Largest int: " + max(integerList)); 
     **System.out.println("Largeset date: " + (max(calendarList)).toString());** 
    } 

    public static Object max(Object[] a) 
    { 
     Arrays.sort(a); 
     return a[a.length-1]; 
    } 

    **@Override 
    public String toString()** 
    { 
     return "Test"; 
    } 
} 

的問題是產生三個數組:整數,字符串和日曆類型。然後挑出每個類別中最大的一個(並顯示答案)。

此課程擴展了GregorianCalendar類,這意味着我可以訪問我試圖覆蓋的日曆toString()。但它不起作用。它像toString()方法不是重寫,因爲我得到默認的toString()輸出。但是,我使用的是Netbeans,它確認覆蓋,甚至當我點擊覆蓋鏈接時,我可以轉到Calendar.toString()。所以我卡住了,任何幫助將不勝感激。

回答

9

那是因爲你不使用你的類,但GregorianCalendar
calendarList[a] = new GregorianCalendar();

更改爲
calendarList[a] = new Exercise9_9();

+0

哇,給出了這樣的快速響應我的第一個問題。非常感謝。 – cworner1