| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1657 人关注过本帖
标题:一个简单的类的继承与多太问题
只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:38 
一个简单的类的继承与多太问题
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
川流不息
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2000
专家分:47
注 册:2006-11-8
收藏
得分:0 
//System.out.println(line.toString()); // 这个方法为什么不能用?
誰說不可以重寫,誰說不可以用。我重寫了完全按照我自己的要求來做的,完全OK。

日月更替,天地輪回,人間已是幾回春。 江山不老,人正少年,只手能擎半邊天。
2007-04-17 09:36
川流不息
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2000
专家分:47
注 册:2006-11-8
收藏
得分:0 

public class TempTest {

public String toString(){
return "toString 方法重寫!";
}

public static void main(String[] args) {
TempTest test = new TempTest();
System.out.println("ddddddd");
System.out.println(test.toString());

}

}


日月更替,天地輪回,人間已是幾回春。 江山不老,人正少年,只手能擎半邊天。
2007-04-17 09:36
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
toString()谁说不能被重写,当然可以被重写

可惜不是你,陪我到最后
2007-04-17 09:36
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
那可以把注释去掉试试看呀
就有问题了

骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-04-17 09:42
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
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();
}*/ //这个方法为什么不能重写?????
你上面已经定义了一个,怎么又能定义一个呢


可惜不是你,陪我到最后
2007-04-17 09:43
川流不息
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2000
专家分:47
注 册:2006-11-8
收藏
得分:0 
哈哈,還是冰封眼賊尖,一下就看出問題了。

日月更替,天地輪回,人間已是幾回春。 江山不老,人正少年,只手能擎半邊天。
2007-04-17 09:45
大嘴先生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
快速回复:一个简单的类的继承与多太问题
数据加载中...
 
   



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

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