我最近遇到一些代碼,其中在類public static中定義了方法abstract。我想知道這是否被認為是好的做法還是反模式?我制作了一個簡單的示例程序來說明我的意思。public abstract class StaticMethodsInAbstractClassesStudy { public static int adder(int a, int b){ return a + b; }}public class StaticMethodsInClassesStudy { public static void main(String [] args){ System.out.println(StaticMethodsInAbstractClassesStudy.adder(2, 3)); }}當您運行代碼時,您會得到結(jié)果,5證明我能夠在類內(nèi)部運行代碼abstract。我故意不添加extends來StaticMethodsInClassesStudy強調(diào)這一點,即完全可以在類中直接運行代碼abstract而無需實例化擴展類。就我個人而言,我認為這是不好的做法,因為您將abstract類用作普通類,從而繞過了類的意圖abstract。這些類型的方法不應該保存在單獨的“普通”java 類中,例如實用程序類嗎?
2 回答

慕沐林林
TA貢獻2016條經(jīng)驗 獲得超9個贊
這本身并不是一個壞習慣,除非抽象類實際上并不意味著要被子類化,并且抽象只是為了防止實例化。對于僅提供靜態(tài)實用程序的類,最佳實踐是將其設為最終的,并具有私有構(gòu)造函數(shù)。

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
我同意你的觀點,abstract
類讓我們想到一些在實例化之前不要使用的東西。
在抽象類中插入一些支持方法是允許的并且很有用,而不強制開發(fā)人員實現(xiàn)該類。
另外,您可以在 an 中Interface
放置靜態(tài)方法,并且可以在不實現(xiàn)該接口的情況下使用它們。
添加回答
舉報
0/150
提交
取消