雖然我們使用接口中的任何方法,但卻要求我們重寫所有未實現的方法。我們還在實施該方法時使用'@Override'註釋。它真的叫做覆蓋?因爲接口僅包含方法定義(不包含可執行代碼)。該接口是說,爲什麼我們在實現Interface的方法時使用@Override?它真的重寫該方法嗎?
public interface ITestListener extends ITestNGListener {
void onTestStart(ITestResult result);
public void onTestSuccess(ITestResult result);
public void onTestFailure(ITestResult result);
public void onTestSkipped(ITestResult result);
public void onTestFailedButWithinSuccessPercentage(ITestResult result);
}
和實現類是
public class TestNGTestBase implements ITestListener{ @Override
public void onTestStart(ITestResult result) {
//xyz
} @Override
public void onTestSuccess(ITestResult result) { /// xyz} @Override
public void onTestSkipped(ITestResult result) {
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub
}}
也這是爲什麼必須重寫接口中的所有方法?
是的,它是壓倒你的接口的所有方法。 '@ Override'符號確保該方法真的被重寫,如果任何這些方法的方法簽名會改變,並且不會有適合該簽名的方法,將會產生編譯時錯誤。 – SomeJavaGuy