java 默认调用super_关于Java中super的调用问题

该博客讨论了Java中子类构造函数调用父类构造函数的问题。当父类没有无参构造函数时,尝试删除`super(size,name)`会导致编译错误。解决方案是在父类中添加无参构造函数,或者在子类构造函数中保留对父类构造函数的调用。示例代码展示了如何正确地处理这种情况。
摘要由CSDN通过智能技术生成

展开全部

super(size,name)是调用父类的构32313133353236313431303231363533e58685e5aeb931333337396236造函数,也就是Base的构造函数Base(size,name)。

你的Base类又没有无参构造函数,当然会报错。

如果非要删掉的话,在Base类里添加无参构造函数就行了package buttontest;

class Base

{

public double size;

public String name;

public Base(double size,String name)

{

this.size=size;

this.name=name;

}

public Base(){

size=1.0;

name=null;

}

}

public class Sub extends Base

{

//public double size;

//public String name;

public String color;

public Sub(double size,String name,String color)

{

//super(size,name);

this.color=color;

//this.size=size;

//this.name=name;

}

public static void main(String[] args)

{

Sub s=new Sub(5.6,"测试对象","红色");

System.out.println(s.size+"--"+s.name+"--"+s.color);

}

}

你可以试一下,删不删super(。。。)都可以运行,且结果不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值