JAVA基础——类的继承、方法重构(计算两点间距离模型)

class Point{                                 //超类
	int x,y;
	Point(int x,int y){                      //构造方法
	this.x=x;
	this.y=y;
	}
	double distance(int x,int y) {           //超类方法
		int dx=this.x-x;                     //计算平面上两个点的距离              
		int dy=this.y-y;                                   
		return Math.sqrt(dx*dx+dy*dy);                     
	}                                                      
	double distance(Point p) {               //超类方法重构        
		return distance(p.x,p.y);            //计算平面上一个点到坐标(x,y)的距离
	}                                        
}                                          

class Point3d extends Point{                 //子类————继承超类Point
	int z;                                   //增加空间坐标z
	Point3d(int x,int y,int z){              //构造方法
		super(x,y);
		this.z=z;
	}
	double distance(int x,int y,int z) {     //子类方法
		 int dx=this.x-x;                    //计算空间上一个点到坐标(x,y,z)的距离
		 int dy=this.y-y;
		 int dz=this.z-z;
		 return Math.sqrt(dx*dx+dy*dy+dz*dz);
	}
	double distance(Point3d other) {                   //子类方法重构
		return distance(other.x,other.y,other.z);      //计算空间上一个点到另一个点的距离
	}
	double distance(int x,int y) {           //重构超类的同名方法
		double dx=this.x-x;                  //计算空间上的点到平面上的点的距离
		double dy=this.y-y;
		double dz=this.z;
		return Math.sqrt(dx*dx+dy*dy+dz*dz);
	}
}

public class Tryhand {                             //主函数
	public static void main(String []args) {
	Point3d p1=new Point3d(30,40,10);              //实例化
	Point3d p2=new Point3d(0,0,0);
	Point p=new Point(0,0);
	System.out.println("p1="+p1.x+","+p1.y+","+p1.z);            //输出各点数值
	System.out.println("p2="+p2.x+","+p2.y+","+p2.z);
	System.out.println("p="+p.x+","+p.y);
	System.out.println("p1.distance(p2)="+p1.distance(p2));      //通过子类方法重构实现
	System.out.println("p1.distance(3,4)="+p1.distance(3,4));    //通过子类对超类同名方法重构实现
	System.out.println("p.distance(3,4)="+p.distance(3,4));      //通过超类方法实现
	}
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值