问题描述
public final class DateUtil{
public static void t1();
}
public abstract class DateUtil{
public static void t1();
}
1楼
abstract
类应被子类化,其子类应被实例化,因此它们不适合实用程序类。
如果您要询问的类仅包含静态实用程序方法并且不应实例化,请将其final
并将构造函数设为private
。
这就是JDK开发人员对java.lang.Math
等类所做的工作。
2楼
是。 要么不选,要么都不选。
人们普遍认为它不应是子类化或可实例化的,因此请添加一个private
构造函数。
(有些人不同意。)
private DateUtil() {
throw new Error();
}
3楼
通常,所有Util类都是final和static。 它将具有私有构造函数。
这样,任何正在调用该方法的人都无需创建对象,并且可以直接使用类名进行访问。