abstract class Fig {
protected int x, y;
//定义抽象方法
abstract double area();
Fig(int a, int b) {
x = a;
y = b;
}
}
class Rect extends Fig {
//调用父类构造方法
Rect(int a, int b) {
super(a, b);
}
//计算矩形面积
double area() {
return x * y;
}
}
class Tria extends Fig {
//调用父类构造方法
Tria(int a, int b) {
super(a,b);
}
//计算三角形面积
double area() {
return 0.5 * x * y;
}
}
public class ExtendsProject {
//定义静态方法
public static void useArea(Fig f) {
System.out.println("f.area()=" + f.area());
}
public static void main(String argv[]) {
Rect r = new Rect(8, 6);
Tria t = new Tria(8, 6);
Fig f;
f = r;
useArea(f);
f = t;
useArea(f);
}
}