使用超级的原因

Reason for using super

在研究别人的代码时,我遇到了这个:

    public class TestFailedError extends AssertionError {  

        private final String testName;  
        private final String testData; 

        public TestFailedError(final String testName, final String message) {  
            super(getDetailMessage(testName, message));
            this.testName = testName;
            this.testData = testName;
        } 
  private static String getDetailMessage(String testData, String message) {
        return "Test case " +testData+ " failed :"+ message;
        }
    }

我不明白 super() 这里的意义。 Reading up on super 没有帮助。 链接问题没有帮助的原因是因为它提供了示例 super.variablesuper.method,而我的是 super(method),所以不是很确定。

super(getDetailMessage(testName, message)); 正在调用 AssertionError 构造函数,TestFailedError 继承自该构造函数,并将保存它收到的 String。看起来像

public AssertionError(String str) {
    // save str to local member
}

str 变量将包含方法 getDetailMessage 中的 return 字符串。