需要!
如果没有super(strValue);出错!因为Key已经明确定义了构造方法public Key(String strValue)!
如果没有super(strValue);出错!因为Key已经明确定义了构造方法public Key(String strValue)!
解决方案 »
- BigDecimal.dive(one,scale,BigDecimal.ROUND_HALF_UP)不能四舍五入!!
- 请问这个反射怎么实现?
- java源程序在加入了组件之后 整个程序的运行很慢 为什么?
- 寻<java实用程序设计100例>随书原码,恳请大伙帮忙
- 有关条形码实现的问题(急救)!!!
- 一个关于jlist似乎无解的问题:jlist的一行能同时添加一个图片和一个字符串吗?
- 提问:关于javadoc
- 日期的问题,我要的是一个字串就象:“200204160819”,怎么做?
- 遇到了一个奇怪的问题,大家帮看看。
- linux java 使用第三方jar库
- 哪里有java api参考帮助,我要得是windows帮助格式的不是html格式的
- 学习Java受阻::请问接口和异常的问题
我想应该没有人去这样写吧,在子类定义了构造函数而只调用了super(strValue)这条语句
public Key1(String strValue)
{
super(strValue);
}
调用super()是引用了父类的功能,然后在子类中添加功能,比如:
public Key1(String strValue)
{
super(strValue);
//子类功能
.....
}
public Key(String s){}的话,那继承他的类的确都要实现这个构造函数,如果你怕麻烦不想每个子类都实现这个构造函数,你可以在Key.java里构造一个空构造函数,就是
public Key(){}
这样,继承他的子类甚至可以写成
public Key1 extends Key{}
也不会错,你想想就知道为什么了
===========================================================================
这里更正确的说是定义了含有参数的构造方法。如果只有含参数的构造方法,那么子类肯定需要定义构造方法,其中通过super(x)来对父类对象初始化;如果定义的构造方法是没有参数的,那么子类不一定需要构造方法;如果两者都有,子类也不一定需要构造方法,具体看你程序的需要而定
super()调用的是父类的无参构造方法
super(x)调用的是父类的带有参数的构造方法
因为 你要是没有不写super(strValue); jvm 就会自己加上一个空参的super();然后它去父类里
寻找空参默认够造器 没有就报错 有就执行