10

独自に作成したカスタム例外で super を呼び出す理由を知りたいだけです。

public class MyException extends Exception 
{ 
   public MyException(String message)         
  {  
    super(message);        
  }      
}

ここで super(message) を呼び出すのは何ですか

4

4 に答える 4

13

派生クラスは常に基本クラスをテンプレートとして持つため、派生オブジェクトを構築する最初のステップとして基本クラスを初期化する必要があります。デフォルトでは、super呼び出しが行われない場合、Java はデフォルト (パラメーターなし) コンストラクターを使用して基本クラスを作成します。別のコンストラクターを使用する場合は、使用superして必要なパラメーターを渡し、正しいコンストラクターを呼び出す必要があります。

カスタム例外の場合super、例外のエラー メッセージを初期化するために使用するのが一般的です。メッセージを基本クラスのコンストラクターに渡すことにより、基本クラスはメッセージを正しく設定する作業を処理します。

于 2012-12-17T04:52:39.380 に答える
2

基本クラスのコンストラクターを呼び出すだけです。

Exception(String message)

指定された詳細メッセージで新しい例外を構築します。

于 2012-12-17T04:51:45.237 に答える
2

なぜなら:

public MyException(String message)         
  {  
   //super() implicit call, how to set message???

}  

したがって、メッセージを設定するには super(message) 呼び出しが必要です。

于 2012-12-17T04:53:37.557 に答える
1

スーパーの使用は、たまたまクラスであるスーパー(ベース、親)クラスのコンストラクターを呼び出すことExceptionです

于 2012-12-17T04:52:02.247 に答える