实训二十 多态

本文展示了如何使用Java进行面向对象编程,定义了抽象类Shape及其子类Triangle(三角形)、Rectangle(矩形)和Circle(圆形),每个子类实现了计算面积的方法。通过实例化这些对象并调用calArea方法,展示了不同图形的面积计算过程。
摘要由CSDN通过智能技术生成

任务一:

1)定义一个抽象类Shape,它有一个计算面积的抽象方法calArea。

package ruan2;

public abstract class Shape {
 abstract void calArea();


	}

2)定义一个三角形类Triangle。它有两个属性n、m,分别表示三角形的底和高。另外,它必须继承于Shape类,并实现calArea方法来计算三角形的面积。 

package ruan2;

public  class Triangle extends Shape{
 private double n;
 private double m;
public Triangle() {
	super();
}
public Triangle(double n, double m) {
	super();
	this.n = n;
	this.m = m;
}
@Override
void calArea() {
			double Tri=(this.n*this.m)/2;
			System.out.println("三角形的面积:"+Tri);
			
		}
	
}

3)定义一个矩形类Rectangle。它有两个属性n、m,分别表示矩形的长和宽。另外,它必须继承于Shape类,并实现calArea方法来计算矩形的面积。

package ruan2;

public  class Rectangle extends Shape {
	private double n;
	 private double m;
	public Rectangle() {
		super();
	}
	public Rectangle(double n, double m) {
		super();
		this.n = n;
		this.m = m;
	}


@Override
void calArea() {
	double  Ret=this.n*this.m;
	System.out.println("矩形的面积:"+Ret);
	// TODO Auto-generated method stub
	
}
}

4)定义一个圆类Circle。它有一个属性n,表示圆形的半径。另外,它必须继承于Shape类,并实现calArea方法来计算圆形的面积。

package ruan2;

public class Circle extends Shape{
	private double n;

	public Circle() {
		super();
		
	}

	public Circle(double n) {
		super();
		this.n = n;
	}

	
	@Override
	void calArea() {
		// TODO Auto-generated method stub
		double Cir=3.14*(this.n*this.n);
		System.out.println("圆形的面积"+Cir);
	}

}

5)分别创建一个三角形对象、一个矩形对象、一个圆形对象,然后将它们存入到一个数组中,最后将数组中各类图形的面积输出到屏幕上。

package ruan2;

public class Test {

	public static void main(String[] args) {
		Shape x=new Triangle();
		Shape y=new Rectangle();
		Shape z=new Circle ();
		Shape[] Shape=new Shape[3];
		Shape[0]=new Triangle(2,2);
		Shape[1]=new Rectangle(2,2); 
		Shape[2]=new Circle(1);
        //自己可以改数值
		for (int i = 0; i < Shape.length; i++) {
			Shape[i].calArea();
		
		}
		System.out.println("一键三连,谢谢");
	}

}

运行结果

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值