簡體   English   中英

java抽象類繼承

[英]java abstract class inheritance

我有一個抽象類,該類在她的子類中擴展:

  • 我在這個抽象類上實現了一個方法,而我又做了另一個方法抽象
  • 實現的方法是每個子類對象都必須訪問的通用方法 。因此,我決定在抽象類上實現它,避免在每個子類上實現相同的方法。

小例子:

public abstract class Foo{

           //plus constructor and other stuff.

        public abstract void differentTypeOfImplementation();

        public void doSomething(Foo foo){
                        //do something with the generic Foo object passed
        }
}

我希望您對這種實施方式有意見,

問候。

這個問題可能太開放了,但是您的解決方案很好。

另一種選擇是,您可以使接口具有differentTypeOfImplementation(),然后使實用程序類具有doSomething。 這樣,您的子類也可以從其他類擴展。 但是,如果子類可能偶爾覆蓋doSomething,或者doSomething需要訪問對象的內部狀態,那么您擁有的是完全有效的。

在抽象類中實現方法是非常有效且可以接受的設計。 如果此方法實現對其所有子類都是必需的,那么這就是方法。 但是,在您的示例中-該方法的簽名使它變得幾乎沒有一點可疑-似乎您沒有以任何方式使用超類狀態。 這意味着您最好將此方法聲明為static

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM