2017-05-20 33 views
0

我有一個問題,我希望你能幫助我:如何僅將抽象類方法的用法限制爲子類?

我有一個包含一些實用抽象方法抽象類,但我想這些方法將僅限於子類,我明明可以」 T選用一個私人修改,但保護是不夠的,因爲在同一個包也有不擴展它的類,但他們可以使用這些方法,如果延長那些被實例化在其中:

我能做什麼? 謝謝!

回答

2

你不能這樣做。唯一的方法是以某種方式重新安排包裝結構,只有基類和它的孩子在包裝內。爲了達到這個目的,你可以把所有不是兒童的類轉移到一個子包中 - 他們不會看到受保護的方法。

出於好奇 - 你爲什麼需要這個?我想到的唯一原因是防止程序員錯誤,因爲惡意代碼無論如何都可以使用反射來訪問這些方法。

+0

我明白了,但爲什麼?我的意思是,爲什麼Java不支持這樣的事情? – Dea5

+0

@ Dea5我相信,這會讓語言變得不必要的複雜。按照這個邏輯,我們也可能有十個訪問修飾符 - 例如限制訪問當前包/到當前包和子包/僅限於子類和超類等。 – ekaerovets

+0

似乎合理......感謝您的回答! – Dea5

相關問題