我只想知道为什么我们在自己创建的自定义异常中调用 super。
public class MyException extends Exception
{
public MyException(String message)
{
super(message);
}
}
这里调用super(message)有什么用
我只想知道为什么我们在自己创建的自定义异常中调用 super。
public class MyException extends Exception
{
public MyException(String message)
{
super(message);
}
}
这里调用super(message)有什么用
由于派生类总是以基类为模板,因此在构造派生对象时,首先需要初始化基类。默认情况下,如果没有super
调用,Java 将使用默认(无参数)构造函数来创建基类。如果要使用不同的构造函数,则必须使用super
传递所需的参数并调用正确的构造函数。
在自定义异常的情况下,常用super
来初始化异常的错误信息;通过将消息传递给基类构造函数,基类将负责正确设置消息的工作。
它只是调用基类构造函数:
Exception(String message)
使用指定的详细消息构造一个新异常。
因为:
public MyException(String message)
{
//super() implicit call, how to set message???
}
所以你需要一个超级(消息)调用来设置消息。
super 的用途是调用 super(base, parent) 类的构造函数,该类恰好是Exception
该类