| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1662 人关注过本帖
标题:一个简单的类的继承与多太问题
取消只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:15 
一个简单的类的继承与多太问题
abstract class Shape
{
protected abstract Point prostion(float x,float y);
public abstract void move(float x,float y);
public abstract void show();
}
class Point
{
private float x;
private float y;
Point(float x,float y)
{
this.x=x;
this.y=y;
}
public void setX(float x)
{
this.x=x;
}
public void setY(float y)
{
this.y=y;
}
public float getX()
{
return x;
}
public float getY()
{
return y;
}
public String toString()
{
return x+","+y;
}
}
public class Line extends Shape
{
private Point start;
private Point end;
Line(Point start,Point end)
{
this.start=start;
this.end=end;
}
protected Point prostion(float x,float y)
{
return start;
}
public void show()
{
System.out.println("起点"+start.toString()+"终点"+end.toString()+"直线长"+getLang());
}
public String toString()
{
return "起点"+start+"终点"+end;
}
public double getLang()
{
return Math.sqrt(Math.pow((end.getX()-start.getX()),2)+Math.pow((end.getY()-start.getY()),2));
}
/*public String toString()
{
return "起点"+start.toString()+"终点"+end.toString()+"直线长"+getLang();
}*/ //这个方法为什么不能重写?????
public void move(float x,float y)
{
start.setX(start.getX()+x);
end.setX(end.getX()+x);
start.setY(start.getY()+y);
end.setY(end.getY()+y);
}
}
class Circle extends Shape
{
private Point center;
private float r;
protected Point prostion(float x,float y)
{
return center;
}
public void show()
{}
Circle(Point center,float r)
{
this.center=center;
this.r=r;
}
public void setCenter(Point center)
{
this.center=center;
}
public void setR(float r)
{
this.r=r;
}
public Point getCenter()
{
return center;
}
public float getR()
{
return r;
}
public void move(float x,float y)
{
center.setX(center.getX()+x);
center.setY(center.getY()+y);
}
public String toString()
{
return "圆心坐标"+center+"半径"+r;
}
}
public class P263E1
{
public static void main(String args[])
{
Line line=new Line(new Point(6,3),new Point(8,9));
//System.out.println(line.toString()); // 这个方法为什么不能用?
line.show();
Circle circle=new Circle(new Point(6,8),8);
System.out.println(circle.toString());
line.move(4,8);
System.out.println("直线移动后:");
line.show(); //移动后直线长为什么没变
circle.move(6,15);
System.out.println("圆移动后:");
System.out.println(circle.toString());
}
}

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 09:17
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
那可以把注释去掉试试看呀
就有问题了

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 09:42
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
那还有其他问题呢!
直线为什么长度没有改变
?!

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 09:47
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 

toString()方法是没看到
那么关于直线长短不能变化呢?!
请斑竹回贴

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 09:49
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
public void show()
{
System.out.println("起点"+start.toString()+"终点"+end.toString()+"直线长"+getLang());
}
System.out.println("直线移动后:");
line.show(); //起点终点坐标改变了,直线长却没变

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:00
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
为什么啊!?

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:04
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
谢谢指教

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:07
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
其实更主要的是编写方法的时候忘记这方法是做什么的了!

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:10
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
谢谢各位指教
我会努力

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:12
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 

是的
我也明白
斑竹以后多指教
请不要嫌我笨就行了

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 10:14
快速回复:一个简单的类的继承与多太问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022334 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved