shs*_*mer 45 java abstract-class
我经常发现自己将类中的常见行为提取到helper/utility类中,这些类只包含一组静态方法.我经常想知道我是否应该将这些类声明为抽象类,因为我无法真正想到实例化这些类的正当理由?
优点和缺点是宣布这样一个类是抽象的.
public [abstract] class Utilities{
public static String getSomeData(){
return "someData";
}
public static void doSomethingToObject(Object arg0){
}
}
Run Code Online (Sandbox Code Playgroud)
Out*_*mer 73
你可以声明一个什么都不做的私有构造函数.
声明类"abstract"的问题在于abstract关键字通常意味着该类旨在进行子类化和扩展.这绝对不是你想要的.
Jon*_*eet 18
不要打扰它们是抽象的,而是包含一个私有的无参数构造函数来防止它们被实例化.
对于那些感兴趣的人来说比较点:在C#中你会声明这个类是静态的,使它在编译形式中是抽象的和密封的(Java的最终版),而根本没有任何实例构造函数.这也使得声明该类型的参数,变量,数组等成为编译时错误.便利.
小智 9
我没有声明实用程序类抽象,我声明它们是final并使构造函数私有.这样它们就不能被子类化,也无法实例化.
public final class Utility
{
private Utility(){}
public static void doSomethingUseful()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12062 次 |
| 最近记录: |