假设我有一个实用类,其中只包含静态方法和变量。例如:
在这种情况下,将该类设置为抽象且final是有意义的。抽象是因为创建此类的对象将毫无用处,因为所有方法都是静态可访问的。final是因为派生类不能从该类继承任何内容,因为它没有任何非静态成员。
C#允许对这些类使用static修饰符。为什么Java不支持这样做呢?
public abstract final class StringUtils
{
public static final String NEW_LINE = System.getProperty("line.separator");
public static boolean isNotNullOrSpace(final String string)
{
return !(string == null || string.length() < 1 || string.trim().length() < 1);
}
}
在这种情况下,将该类设置为抽象且final是有意义的。抽象是因为创建此类的对象将毫无用处,因为所有方法都是静态可访问的。final是因为派生类不能从该类继承任何内容,因为它没有任何非静态成员。
C#允许对这些类使用static修饰符。为什么Java不支持这样做呢?
true
。 - Suresh Attafinal
的含义;final
相当于 C# 中的sealed
,而不是static
。 - Pharappublic final abstract class ChuckNorris extends ChuckNorris {}
- tar