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;  				//通过循环调用接口并求和
}
}

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

本文链接http://www.taodudu.cc/news/show-1782038.html