例7-1 具有继承关系的类
本例定义了二维坐标系中的点类Point2D,三维坐标系中的点类Point3D,后者继承了前者,并覆盖了父类中的getDistance()方法。代码中使用this引用类自身的成员,使用super(double,double)调用父类的构造方法。
class Point2D{ //二维坐标系中的点类
private double x; //记录x轴坐标
private double y; //记录y轴坐标
Point2D( double x, double y ){ //构造方法
this.x = x;
this.y = y;
}
double getX(){ //获取x轴坐标值
return x;
}
double getY(){ //获取y轴坐标值
return y;
}
double getDistance(){ //计算点到原点的距离
return Math.sqrt(x*x+y*y);
}
}
class Point3D extends Point2D{ //三维坐标系中的点类
private double z; //记录z轴坐标
Point3D( double x, double y, double z ){ //构造方法
super(x,y); //调用父类构造方法
this.z = z;
}
double getDistance(){ //计算点到原点的距离
return Math.sqrt( getX()*getX()+getY()*getY()+z*z);
}
}
public class PointTest{
public static void main (String[] args){