使用参数化构造函数时是否需要声明默认constructor
?
我们可以创建该class
的参数化对象,并且该对象可用于调用该类的其他函数,那么为什么需要默认构造函数?
public class Const {
Const(int s,int t) {
int b=s+t;
System.out.println(b);
}
public int add(int a) {
int j = 9;
j=j+a;
return j;
}
}
public class Construct {
public static void main(String[] args) {
Const obj =new Const(5,9);
obj.add(55);
}
}
这里我们不需要默认的构造函数。我们不能带着这个东西去吗?
答案 0 :(得分:0)
在我们的项目结构中实现继承时,我们需要默认的构造函数。
示例:
Class Apple{
Apple(){}
Apple(String a){
System.out.pritnln(a);
}
}
Class Banana extends Apple{
Banana(){}
public static void main(String[] args){
Apple("Eaten");
}
}
在上述情况下,如果您不为类Apple
声明任何默认构造函数,则它将引发错误:
Implicit super constructor Apple() is undefined for default constructor. Must define an explicit constructor
因为类Banana
将始终尝试调用未参数化的超级构造函数,并且如果您声明了一个参数化的构造函数,则必须声明默认的构造函数。
答案 1 :(得分:0)
您的代码完全正确。完全不需要默认构造函数。您甚至可以将所有构造函数设为私有,以便您无权访问任何构造函数:
public class PrivateClassTest
{
// Default constructor that is not accessible by others
private PrivateClassTest()
{
}
}
答案 2 :(得分:0)
构造函数用于初始化对象。换句话说,构造函数为对象提供内存。如果不初始化对象,我们将无法使用其属性。
但是不需要在Java中定义或声明默认构造函数。如果我们尚未声明或定义默认构造函数,则编译器会在其中隐式添加默认构造函数。