在抽象类中公开静态方法被认为是好还是坏实践

我最近遇到一些代码,其中在类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));


    }

}

当您运行代码时,您会得到结果,5证明我能够在类内部运行代码abstract。


我故意不添加extends来StaticMethodsInClassesStudy强调这一点,即完全可以在类中直接运行代码abstract而无需实例化扩展类。


就我个人而言,我认为这是不好的做法,因为您将abstract类用作普通类,从而绕过了类的意图abstract。这些类型的方法不应该保存在单独的“普通”java 类中,例如实用程序类吗?


九州编程
浏览 96回答 2
2回答

慕沐林林

这本身并不是一个坏习惯,除非抽象类实际上并不意味着要被子类化,并且抽象只是为了防止实例化。对于仅提供静态实用程序的类,最佳实践是将其设为最终的,并具有私有构造函数。

慕雪6442864

我同意你的观点,abstract类让我们想到一些在实例化之前不要使用的东西。在抽象类中插入一些支持方法是允许的并且很有用,而不强制开发人员实现该类。另外,您可以在 an 中Interface放置静态方法,并且可以在不实现该接口的情况下使用它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java