public Super(){
}
public Super(String s){
i=1class Super{
int i=0.println(k;
}
}
class kongcan extends Super{
public kongcan(String s) {
i=2;
}
public static void main(String[] args) {
kongcan k=new kongcan(".out;yes");
System
java问题 为什么 少了父类中的空参数构造器 会编译失败呢 最好说下具体流程
答案:3 悬赏:40 手机版
解决时间 2021-03-10 05:30
- 提问者网友:山高云阔
- 2021-03-10 01:35
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-03-10 01:49
额,刚才看错问题了。
是这样的 java再初始化一个类的时候 会使用你指定的构造函数进行初始化;如果这个类没有显式的进行声明构造器 java会默认编译的时候给添加一个空的构造器,但是如果当前已经有构造器 就不会自动添加空空构造器了。
所以上面如果 去掉空的构造器声明就会报错误。
是这样的 java再初始化一个类的时候 会使用你指定的构造函数进行初始化;如果这个类没有显式的进行声明构造器 java会默认编译的时候给添加一个空的构造器,但是如果当前已经有构造器 就不会自动添加空空构造器了。
所以上面如果 去掉空的构造器声明就会报错误。
全部回答
- 1楼网友:第幾種人
- 2021-03-10 04:57
这个程序如果在一个包内,就没有错误!不在一个包,会出错!子类如果没有显示调用父类的构造函数,系统会默认调用父类无参构造函数,上面Super类已经有无参构造函数,所以这一点没错!
- 2楼网友:煞尾
- 2021-03-10 03:25
class dad
{
string name;
int age;
public dad(){}
public dad(string name,int age)
{
this.name =name;
this.age =age;
}
}
class kid extends dad
{
public kid()
{
super(); //父类构造器的调用,必须是子类构造器中的第一个语句
system.out.println("优先调用了无参构造器 ");
}
public kid(string name,int age) //含参构造器中的参数列表,即包含了子类的成员变量,也包含了继承的父类的成员变量
{
super(name,age); //●●●父类构造器的调用,必须是子类构造器中的第一个语句
system.out.println("优先调用了含参构造器:"+this.name+"已经"+this.age);
}
}
public class maintest
{
public static void main(string[] args)
{
kid kd1=new kid();
kid kd2=new kid("帅哥",19);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯