我想也許沒有辦法做到這一點,但我認爲這值得提問。我想要做的東西像下面這樣:從靜態方法實例化子類
public class Super {
public static String print() { System.out.println(new Super().getClass().getSimpleName()); }
public Super() {}
}
public class Subclass extends Super {
public Subclass() {}
public void main(String[] args) {
Super.print();
Subclass.print();
}
}
我希望得到Super.print(),以顯示「超級」和Subclass.print(),以顯示「子類」。但是,我不知道如何從靜態上下文中做到這一點。謝謝您的幫助。
我很清楚,我可以在沒有靜態方法的情況下執行此操作,並且可以將類傳遞給每個方法調用。我不想這樣做,因爲這需要在許多子類上重新定義幾個靜態方法。
您可能希望有子類來擴展超級做到這一點,因此它可以調用print(),並具有打印()返回一個字符串或改變其簽名無效.. 。只是一個FYI。 – 2010-06-30 14:13:01
我在我的示例中添加了「超級超級」。我本來打算把它放在那裏,忘了。 – Blacktiger 2010-06-30 15:05:11