| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:类的继承与多太
取消只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:1 
类的继承与多太
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 08:38
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
怎么没人回答我啊?!

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



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016976 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved