abstract class Shape{
Shape(){}
public abstract double getGirth(double m,double n);
public abstract double getArea(double m,double n);
}class Oblong extends Shape{
String name;
Oblong(String name){
this.name = name;
}
public double getGirth(double m,double n){
double c = 0;
c = 2*(m + n);
return c;
}
public double getArea(double m,double n){
double s = 0;
s = m * n;
return s;
}
}class Square extends Oblong{
String name;
Square(String name){
super(name);
}
public double getGirth(double m,double n){
double c = 0;
c = 4 * m;
return c;
}
public double getArea(double m,double n){
double s = 0;
s = m * m;
return s;
}
}
System.out.println(x.name + " " + x.getGirth(4,0) + " " + x.getArea(4,0));程序编译运行正常,但是为什么构造函数不能正确执行,name 运行 后是 null ?
Shape(){}
public abstract double getGirth(double m,double n);
public abstract double getArea(double m,double n);
}class Oblong extends Shape{
String name;
Oblong(String name){
this.name = name;
}
public double getGirth(double m,double n){
double c = 0;
c = 2*(m + n);
return c;
}
public double getArea(double m,double n){
double s = 0;
s = m * n;
return s;
}
}class Square extends Oblong{
String name;
Square(String name){
super(name);
}
public double getGirth(double m,double n){
double c = 0;
c = 4 * m;
return c;
}
public double getArea(double m,double n){
double s = 0;
s = m * m;
return s;
}
}
System.out.println(x.name + " " + x.getGirth(4,0) + " " + x.getArea(4,0));程序编译运行正常,但是为什么构造函数不能正确执行,name 运行 后是 null ?
解决方案 »
- eclipse中怎样添加自定义的包
- 关于static的问题
- 大家有什么好建议?
- 点一个button,出现一个弹出窗口,可以输入一个值,回添给原来窗口?
- 绝世美女,又来了,圣诞带来终极恶梦!英语好,技术强的高手来 (系列七)
- 单机版的桌面程序问题(在线等)
- 请教一个问题请教一个问题,4到9之间的数字相加,数字可重复,答案为100的所有组合。求算法
- 帮我看看,为什么输出会这样?
- 请问侯捷的那本《Thinking in Java》书后的习题答案哪有下的?
- 算法设计
- 从1到100中,如果其中有一个数丢了,如何找出这个数,有几种方法?集合框架怎么做呢?
- 如果做出类似Windows Exploer打开文件夹 右边的界面
楼主【zyp627】截止到2008-07-26 23:40:57的历史汇总数据(不包括此帖):
发帖的总数量:62 发帖的总分数:830 每贴平均分数:13
回帖的总数量:32 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:62 结贴的总分数:830
无满意结贴数:3 无满意结贴分:60
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:4.84 % 无满意结分率:7.23 %
敬礼!
在Square中自己定义的name把父类的name隐藏了.你通过super初始化了父类定义的name,但是Square定义的name没有初始化.但通过Square的对象访问到的是这个未初始化的name.这两个name,改掉其中一个.
你要是Square x = new Square("name");
所以你的x.name为null;(因为会去找Square的name属性,而Square的name属性,你没有付值)你要是Oblong x= new Square("name");
x.name就不是null了.(取Oblong 的name属性)