在一个包内定义一个接口Shape2D,内含一个变量PI,一个方法: area()。定义Cricle类和Rectangle类,实现接口Shape2D,重写area()方法。定义Calculate类包含cal(Shape2D s)方法,计算s的面积。在另一个包中定义测试类,分别创建3个类的对象,实现图形面积的计算。
具体代码如下:
接口Shape2D
package Fourth;
public interface Shape2D {
double PI = 3.14;
public double area();
}
Cricle类
package Fourth;
public class Cricle implements Shape2D {
double r;
public Cricle(double r) {
super();
this.r = r;
}
public double area() {
return r*r*PI;
}
public String toString() {
return "Cricle";
}
}
Rectangle类
package Fourth;
public class Rectangle implements Shape2D {
double weight;
double high;
public Rectangle(double weight, double high) {
super();
this.weight = weight;
this.high = high;
}
public double area() {
return weight*high;
}
public String toString() {
return "Rectangle";
}
}
Calculate类
package Fourth;
public class Calculate{
public static void cal(Shape2D s) {
System.out.println(s.toString()+"的面积为:"+s.area());
}
}
Test测试类
由于题目要求在另一个包中创建测试类,因此要导入其他包中所创建的类,使用import。
package Test;
import Fourth.Calculate;
import Fourth.Cricle;
import Fourth.Rectangle;
public class Test {
public static void main(String[] args) {
Cricle c = new Cricle(2);
Rectangle r = new Rectangle(2, 3);
Calculate.cal(c);
Calculate.cal(r);
}
}