Java构造函数 为什么需要无参构造函数

Java构造函数 为什么需要无参构造函数

2013-05-08 16:20匿名  |  浏览 3298 次
class cust
{
  int a;
  cust(){}
  cust(int a)
  {
     this.a=a; 
  }  
}

class test
{
   cust A=new  cust(4);
}

如果没有cust(){}
会怎么样啊,构造函数中无参的是起什么作用的?
cust(int a)
{...}也是构造函数么
2013-05-08 17:18 网友采纳
热心网友
构造器其实就是构造对象实例的方法,无参数的构造方法是默认的,但是如果你创造了一个带有参数的构造方法,那么无参的构造方法必须显式的写出来,否则会编译失败。以你的例子来讲cust有两种实例化的方法,一个是new cust()和new cust(4),前者只是简单实例化一个cust对象,而后则实例化cust对象后,并将对象中的变量a赋值为4,如果在你的例子中将cust(){}删除,则会编译失败的
评论  |  14  8

为您推荐:

按默认排序 | 按时间排序

其他1条回答

2013-05-08 17:20热心网友
子类继承父类的时候会自动继承父类的默认构造函数(也就是继承那个无参数的构造函数)。而你的类里面已经有一个带有参数的构造函数了,如果你没有写那个默认的不带参数的构造函数的话,继承的时候子类就会报错,因为系统不知道要不继承哪个构造函数,必须明确的使用super()关键字来描述。所以我们一般为了避免这种错误的发生,在有带有多个构造函数的类里面都会写一个不带参数的构造函数。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值