实用程序类 - 正确的方法是什么?

2022-09-04 07:05:37

对于具有公共静态的所有方法的实用程序类,正确的方法是什么?
我应该使用最终类还是抽象类?
请给出建议。
例如:

public final class A{ 
    public static void method(){
        /* ... */
    }
}

public abstract class A{
    public static void method(){
        /* ... */
    }
}

答案 1

abstract有自己的目的。如果你想要一些由其他类()实现的类功能,那么你使用抽象。override

如果它只是实用程序类,但你不希望其他类子类它,那么我会选择类。如果实用程序类只有方法,则无论如何都无法重写它们,因此将它们也放在类中也没有区别。finalstaticnon-final


答案 2

创建实用程序类的最佳方法。如果您不希望其他类继承它。

//final, because it's not supposed to be subclassed
public final class AlertUtils 
{ 

// private constructor to avoid unnecessary instantiation of the class
    private AlertUtils() {
    }

  public static ..(){}//other methods
}