1.定义接口Areaable,包括抽象方法getArea(),获取形状的面积;定义接口Colorable,包括抽象方法getColor(),获取形状颜色。
假定:圆形只需要计算面积;三角形只需要获取颜色;正方形既需要计算面积,也需要获取颜色。
测试类中分别创建Circle、Square、Triangle对象,并输出面积或颜色等信息。
几个问题:
Circle、Square、Triangle对象类中需要定义什么
实现接口中的抽象类应该怎么写
图形的颜色面积是在对象类中定义还是在测试类中定义

解决方案 »

  1.   

    //Areaable接口定义
    package personal.winter.study;
    /***
     * 获取形状面积接口
     * @author Administrator
     *
     */
    public interface Areaable {
    /*
     * 得到面积抽象方法
     */
    abstract public double getArea();
    }
    //*Colorable接口定义
    package personal.winter.study;
    /**
     * 得到形状颜色接口
     * @author Administrator
     *
     */
    public interface Colorable {
    /*
     * 得到颜色抽象方法
     */
    abstract public String getColor();
    }
    //圆类
    package personal.winter.study;
    /**
     * 形状圆
     * @author Administrator
     *
     */
    public class Circle implements Areaable{ private double r;
    final double PI = 3.1415926;
    /*
     * 构造方法
     */
    public Circle(double r) {
    this.r=r;
    }

    /*
     * 实现抽象方法getArea
     */
    public double getArea() {
    return PI*this.r*this.r;
    }
    }
    //三角形类
    package personal.winter.study;
    /**
     * 三角形类
     * @author Administrator
     *
     */
    public class Triangle implements Colorable{
    private String color;
    /*
     * 带初始化颜色构造方法
     */
    public Triangle(String color) {
    this.color = color;
    }
    /*
     * 实现抽象方法getColor
     */

    public String getColor() {
    return this.color;
    }
    }
    //正方形类
    package personal.winter.study;
    /**
     * 正方形类
     * @author Administrator
     *
     */
    public class Square implements Areaable,Colorable{

    private double line;
    private String color;

    /*
     * 构造方法
     */
    public Square(double line,String color) {
    this.line=line;
    this.color = color;
    }
    /*
     * 实现抽象方法getArea
     */
    public double getArea() {
    return line*line;
    }
    /*
     * 实现抽象方法getColor
     */
    public String getColor() {
    return this.color ;
    }
    }
    //测试类
    package personal.winter.study;
    /**
     * 测试类
     * @author Administrator
     *
     */
    public class Test { public static void main(String[] args) {
    // TODO Auto-generated method stub
    Circle c = new Circle(3.0);
    Square s = new Square(5.0,"Green");
    Triangle t = new Triangle("Red");
    System.out.println("圆的面积为:"+c.getArea());
    System.out.println("三角行的颜色为:"+t.getColor());
    System.out.println("正方形的面积为:"+s.getArea()+",颜色为:"+s.getColor());
    }}