[英]Why we use @Override while implementing a method from Interface ? Does it really Override the method?
當我們使用接口中的任何方法時,它都會要求我們覆蓋所有未實現的方法。 在實現該方法時,我們也在使用“ @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
}}
還為什么這是強制性的才能覆蓋接口中的所有方法?
是的,該方法是從超類重寫的。 如果這些方法中任何一個的方法簽名會更改,則該表示法將產生編譯時錯誤。
覆蓋是使用繼承時可用的功能。
當從另一個類擴展的一個類想要使用父類的大多數功能,並希望在某些情況下實現特定功能時,將使用它。
@Overriding確保該方法是正確的替代,如果該方法不是有效的替代,則會給出編譯時錯誤。 強制覆蓋類中接口的所有方法不是強制性的,在這種情況下,您需要聲明類“抽象”。
但是,如果您想要一個具體的類(可以實例化)來實現一個接口,則需要在這個具體的類中實現接口的所有方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.