在不是所有方法都將被實現的場景中從基類繼承時,最好是將空方法放入基類中,以便不需要那些子類方法完全可以忽略它,而其他類必須覆蓋的方法,如果他們想實現它...例如:在Java中使用抽象類時的編碼風格
基類:
public void myMethod() {
}
子類,沒有實現:
<nothing!>
或者更好的辦法是讓基類變得更清潔,並且只是放入一個抽象方法,並強制子類充實一個空白的方法,如果它沒有實現該方法?
基類:
public abstract void myMethod();
子類,沒有實現:
public void myMethod() {
}
您可以使用接口代替 – Smit
其他地方的抽象類具有執行某些操作的方法。目前還沒有選擇將其轉換爲接口。我應該在問題中注意到我期待很多「不使用繼承」的答案! :-) – fig
我會採用第二種方法,並讓子類在這些方法中實際引發異常。這將確保不必要的方法不在不應該在的子類上調用。 – ryadavilli