Jon*_*eet 26
不,你不能覆盖构造函数.他们不是遗传的.然而,每个子类的构造具有链任一子类中的另一构造或要在超构造.例如:
public class Superclass
{
public Superclass(int x) {}
public Superclass(String y) {}
}
public class Subclass extends Superclass
{
public Subclass()
{
super(5); // chain to Superclass(int) constructor
}
}
Run Code Online (Sandbox Code Playgroud)
构造函数不被继承的含义是你不能这样做:
// Invalid
Subclass x = new Subclass("hello");
Run Code Online (Sandbox Code Playgroud)
至于你的第二个问题,是的,构造函数可以是私有的.它仍然可以在类或任何封闭类中调用.这对于单身人士来说很常见:
public class Singleton
{
private static final Singleton instance = new Singleton();
private Singleton()
{
// Prevent instantiation from the outside world (assuming this isn't
// a nested class)
}
public static Singleton getInstance() {
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有一个只有静态方法的实用程序类,那么私有构造函数也可用于阻止任何实例化.
| 归档时间: |
|
| 查看次数: |
44079 次 |
| 最近记录: |