[英]Java Implementing Interface Declared in Abstract Class
考慮我的以下示例結構:
public interface MyInterface
{
public void doSomething();
}
public interface MyInterface2
{
public void doSomethingElse();
}
public class MyAbstract implements MyInterface, MyInterface2
{
@Override
public void doSomething()
{
//...
}
@Override
public void doSomethingElse()
{
//...
}
}
所以我有 2 個抽象類實現的接口。
如果我有一個 AbstractClass MyImpl
的實現,它擴展了MyAbstract
,似乎我不必聲明implements MyInterface
和MyInterface2
但這樣做是更好的做法嗎?
public class MyImpl extends MyAbstract
implements MyInterface, MyInterface2
{
}
對比
public class MyImpl extends MyAbstract
{
}
你應該選擇第二個版本
public class MyImpl extends MyAbstract
{
}
您正在擴展實現接口的類這一事實足以推斷您的具體類也實現了這些接口,因為契約是可傳遞的。 將接口添加到您的實現中只是重復。
擴展任何類都允許我們在需要時覆蓋超類的方法,但是當我們實現一個接口時,我們必須強制定義該接口的所有方法。
您的第二個版本就足夠了,因為當您的類從第一個類繼承時,您可以重用第一個類的所有屬性(字段、方法、繼承和實現接口...)。
您可以在此處找到更多信息: 繼承
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.