问个JAVA的菜鸟问题
import java.io.PrintWriter;
public class PointTest
{
public static void main(String args[])
{
PrintWriter out = new PrintWriter(System.out ,true);
MyPoint mp =new MyPoint(4,3);
Point2D p = new Point2D(11);
Point2D q=mp;
mp.x=5;mp.y =12;
out.println("\n\t DataMember Access Test:\n");
out.println("mp = (" + mp.x + ", "+mp.y+")");
out.println("p = (" + p.x + ", "+p.y+")");
out.println("q = (" + q.x + ", "+q.y+")");
out.println("\n\t CastingTest:\n");
out.println("(Point2D)mp = (" + ((Point2D)mp).x + "," +((Point2D)mp).y + ")");
out.println("(MyPoint)q = (" + ((MyPoint)q).x + "," +((MyPoint)q).y + ")");
}
}
public class Point2D
{
int x,y;
Point2D(){
this(0,0);
}
Point2D(int x)
{
this(x,0);
}
Point2D(int x,int y )
{
this.x=x;
this.y=y;
}
double length()
{
return Math.sqrt(x*x+y*y);
}
}
public class MyPoint extends Point2D
{
int x,y;
MyPoint(int x,int y)
{
super(x,y);
this.x=x;
this.y=y;
}
double length()
{
return Math.sqrt(x*x+y*y);
}
double distance()
{
return Math.abs(length()-super.length());
}
}
运行结果是 :
DataMember Access Test:
mp = (5, 12)
p = (11, 0)
q = (4, 3)
CastingTest:
(Point2D)mp = (4,3)
(MyPoint)q = (5,12) ??我这里不是很清楚,请问为什么是 (4,3)和 (5,12)