package P78.EX16;class MyRectangle
{
private int Length,Width;
void setLength(int Length)
{
this.Length=Length;
}
void setWidth(int Width)
{
this.Width=Width;
}
int getWidth()
{
return Width;
}
int getLength()
{
return Length;
}
int getArea()
{
return Length*Width;
}
String tostring()
{
//String s=String.format("%d,%d",Length,Width);
//return s;这两种都可以实现 格式。
String s=Width+","+Length;
return s;
}
}
package P78.EX16;class MySquare extends MyRectangle
{
private int Length;
int getArea()
{
return Length*Length;
}
String tostring()
{
String s=String.format("%d", Length);
return s;
}}
package P78.EX16;public class Mainclass
{
public static void main(String args[])
{
MyRectangle a=new MyRectangle();
a.setLength(3);
a.setWidth(2);
System.out.println(a.tostring());
System.out.println(a.getArea());
MyRectangle b=new MySquare();
b.setLength(8);
System.out.println(b.tostring());
System.out.println(b.getArea());
}}
为什么 调用不了子类啊??? 程序运行后 子类那得东西都是0.
b.setLength(8);
这里的setLength设置的是父类里的length
子类必须重写setLength方法才可以class MySquare extends MyRectangle
{
private int Length;
void setLength(int Length)
{
this.Length=Length;
}
int getArea()
{
return Length*Length;
}
String tostring()
{
String s=String.format("%d", Length);
return s;
}}
不然默认的构造方法会给所有域自动赋上初值
而且正方形类不用再另外覆盖那个域,直接用length不就可以了么
http://www.cnblogs.com/healerkx/articles/1237412.html
this.Length=Length; 这条代码他提示我 对Length赋值不能生效??
这是怎么会是?
b.setLength(8);
在MySquare里没有重写MyRectangle的setLength是不是哪里培训的课外作业?课程讲得这么快。
他告诉我 this.Length=Length 赋值不能生效 这个是怎么会是 。
还有10楼的 我会考虑你推荐的那本书的,现在是个大学老师就出本书,也不知道谁写的好还不过时。
我感觉,代码淘汰的也太快了 郁闷
怎么无效? 可以自动生成get set 也无效?
代码上单击右键,进入source,选择其中的generate setter and getter