解决方案 »
- JAVA 菜鸟请教简单问题
- Thinking in java中的static问题
- 一个关于java继承的小问题,算是比较经典的了
- 使用TableCellRender实现资源管理器的图标+文件名功能时的,出现了一个奇怪诡异的显示问题(内详):
- 应届生求助各位前辈!
- 求The JasperReports Ultimate Guide文档
- java能判断文件是否存在吗?
- 我的IE6不能识别〈APPLET〉标记,应如何处理?
- 谁有关于介绍JAVA2类库的文档?(送分!)
- 晕了!!!!!!又是100个错误??????晕了??????(编译器没有问题)????????
- 求惑----------彩票生成程序
- 各位大虾,请求你们的帮忙,不胜感激!
private String name;父类:
private String Name;所以A类的 name一直为null;
private int salary;
private int sample;//contructor overloadingpublic A(String _name,int _salary,int _sample)
{
super(_name,_salary);
sample=_sample;
}你这个有参构造,调super实例化了父类的 name,salary。 好像子类的salary没有实例化成功,
你加输出语句试试,如果成功了
输出结果总是
姓名:张三;工资:5000。null拿着低工资系列!!//这个张三应该是高工资吧
姓名:李四;工资:2000。null拿着低工资系列!!
姓名:王五;工资:3000
public A(String _name,int _salary,int _sample)
{
super(_name,_salary);
sample=_sample;
}调用class A的构造方法的时候 super(_name,_salary); 你并未给A 的name赋值,反而对于基类进行了赋值。
所以你this.name肯定是null了
{
super(_name,_salary);
//加了下面的赋值语句才有用了
name=_name;
salary=_salary;
sample=_sample;
} 但是既然重写了父类的构造函数,为什么还要在子类中在写一遍呢?这如何体现继承所带来的overloading的好处?