继承与多态

一、子类及其对象

1、设计一个圆类,该类能够表示圆的位置和大小,能够计算圆的面积和周长,能够对圆进行平移。定义圆类的对象并进行相应的操作,输出操作后的结果。

package MY;

class Point  //点类 ,父类
{
	protected int x,y; // 保护,可以被子类访问
	
	public Point(){}  //构造方法
	public Point(int x,int y)  //构造方法
	{
		this.x=x;
		this.y=y;
	}
	//下面的方法都是公有的,可以被子类继承并直接访问
	public int getX() //获得 x 分量
	{
		return x;
	}
	public int getY() //获得 Y 分量
	{
		return y;
	}
	public void move (int offsetX,int offsetY) // 对点平移
	{
		x=x+offsetX;
		y=y+offsetY;
	}
}

class Circle extends Point   //Circle 是子类,继承自父类 Point
{
	private double radius; //圆的尺寸
	
	public Circle(){} //构造方法
	public Circle (double radius, int x,int y) //构造方法
	{
		this.radius=radius;  //本身域初始化
		this.x=x;   //继承自父类的域 x 和 y 初始化
		this.y=y;
	}
	public double area() //计算面积
	{
		return Math.PI*radius*radius;
	}
	public double perimeter()  //计算周长
	{
		return 2*Math.PI*radius;
	}
	/*
	 * 本类中无需再定义下面方法,因为本类对象可以
	 * 直接使用继承自 Point 类中的相应方法
	 public int getX(){}
	 public int getY(){}
	 public void move (int offsetX,int offsetY){}*/
	
}

public class Main {
	public static void main()(String args[])
	{
		Circle aCircle =new Circle (10,15,25); //生成派生类对象
		
		System.out.printf("面积:%。2f,周长:%。2f\n", aCircle.area(),aCircle.perimeter());
		System.out.println("移动前圆的位置:("+aCircle.getX()+","+aCircle.getY()+")");
		aCircle.move(11, 22);
		System.out.println("移动后圆的位置:("+aCircle.getX()+","+aCircle.getY()+")");

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值