Java继承与多态(抽象类和接口)现有以下接口的声明: public interface CalcArea { double getArea(); } (1)定义圆类Circle并实现接口CalcA

现有以下接口的声明:
public interface CalcArea {
double getArea();
}
(1)定义圆类Circle并实现接口CalcArea,圆类的主要成员变量为半径radius,构造方法的参数用于初始化半径。
(2)定义矩形类Rectangle并实现接口CalcArea,矩形类的主要成员变量包括长length和宽width,构造方法的参数用于初始化长和宽。
(3)现有如下类Tester,其功能是求存储在一个数组中的多个图形的面积之和,要求补全其中缺少的代码。
public class Tester {
static CalcArea[] shapes = { new Circle(1.0), new Rectangle(3.0, 4.0), new Circle(8.0) };
public static void main(String[] args) {
System.out.println("total area = " + sumArea(shapes));
}
public static double sumArea( CalcArea[] shapes) {
double sum = 0;
for(CalcArea c:shapes) {
sum=sum+c.getArea();

}
return sum;
}
}
所有类和源代码

public interface CalcArea {
	double getArea();				//定义抽象类getArea
}
class Circle implements CalcArea {
 double radius;
 public Circle(double r) {
 radius=r;
 }
@Override
public double getArea() {
	// TODO Auto-generated method stub
	return (3.14159 * radius * radius);
}									//通过getArea实现圆的面积计算
}
class Rectangle implements CalcArea {
 double width,height;
 public Rectangle(double w,double h) {
 width=w;
 height=h;
 }
@Override
public double getArea() {
	// TODO Auto-generated method stub
	return (width * height);
}							//实现长方形面积计算
}
public class Tester {
	static CalcArea[] shapes = { new Circle(1.0), new Rectangle(3.0, 4.0), new Circle(8.0) };							//定义数组CalcArea[]
	public static void main(String[] args) {
		System.out.println("total area = " + sumArea(shapes));
	}									//主函数中输出所有的面积
	public static double sumArea(   CalcArea[]     shapes) {
		double sum = 0;
		   for(CalcArea c:shapes) {
				sum=sum+c.getArea();
			}
			return sum;  				//通过循环调用接口并求和
}
}

运行结果
在这里插入图片描述

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值