我有这样一个类:
public class BaseClass
{
public BaseClass(URL url, String something, String whatever)
{
// Do some stuff with URL, something and whatever
}
public List ImportantFunction()
{
// Some important stuff here
}
}
我想使用这个类,但是我想在构造函数中做不同的事情。构造函数所做的事情我需要以不同的方式进行。但我想使用其他类方法的所有功能。
我认为最简单的方法是扩展类(class)。但是,当我这样做时,构造函数要求我调用父构造函数:
super(url, something, whatever);
是否可以扩展基类但具有完全不同的构造函数?我根本不想调用 BaseClass
构造函数...
最佳答案
您必须调用父类(super class)的a 构造函数。如果你不显式调用一个,Java 将尝试自动调用无参数构造函数;如果没有这样的,你会得到一个编译错误。您调用的构造函数不需要与传递给子类构造函数的参数相对应。
这是强制性的——对象的成员变量可以在构造函数中初始化,不调用其中一个可能会违反父类(super class)的内部假设。
没有办法绕过使用 JNI 来破坏 JVM。
关于Java - 你可以重写一个类而不调用父类构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074459/