我只想知道爲什麼我們在自己創建的自定義異常中調用super。超級調用自定義異常
public class MyException extends Exception
{
public MyException(String message)
{
super(message);
}
}
這裏用的是什麼叫超(消息)
我只想知道爲什麼我們在自己創建的自定義異常中調用super。超級調用自定義異常
public class MyException extends Exception
{
public MyException(String message)
{
super(message);
}
}
這裏用的是什麼叫超(消息)
由於派生類總是具有基類作爲模板的構造,它是必須初始化基類作爲構建派生對象的第一步。默認情況下,如果沒有調用super
,Java將使用默認(無參數)構造函數來創建基類。如果你想使用不同的構造函數,你必須使用super
來傳入你想要的參數並調用正確的構造函數。
在自定義異常的情況下,通常使用super
來初始化異常的錯誤消息;通過將消息傳遞給基類構造函數,基類將負責正確設置消息的工作。
這只是調用基類的構造函數:
Exception(String message)
構造帶指定詳細消息的新異常。
使用超級的是調用超(鹼,親本)類,它正好是Exception
類
因爲:
public MyException(String message)
{
//super() implicit call, how to set message???
}
所以你需要一個超級(消息)調用來設置消息。
這是調用非默認超級的構造函數。 –