为什么有必要给父类提供默认的构造函数?

  1. class SuperClass {  
  2.     //父类没有默认构造器,但是有含参构造器  
  3.     public SuperClass(String param) {  
  4.     }  
  5. }  
  6.   
  7. class ChildClass {  
  8. }  

出现以上代码,即不能编译通过,原因如下:

1)编译器会给子类提供默认的构造器
2)编译器不会给父类提供默认构造器,因为父类已经定义一个构造器了
3)子类在实例化时,会调用父类的默认构造器,但是--父类没有,因此逻辑上是有错的

 

有几种方法可以让它通过编译

1)给父类提供一个空的无参构造器

2)如果不给父类提供默认的构造器,子类的实现就需要一些额外的限制:它必须保证父类能初始化。因此子类必须提供自己的构造器,并且在构造器中调用父类的构造器

转载于:https://www.cnblogs.com/cuixiaodong427/archive/2011/11/19/2255377.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值