永发信息网

java问题 为什么 少了父类中的空参数构造器 会编译失败呢 最好说下具体流程

答案:3  悬赏:40  手机版
解决时间 2021-03-10 05:30
  • 提问者网友:山高云阔
  • 2021-03-10 01:35
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
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-03-10 01:49
额,刚才看错问题了。
是这样的 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); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯