定义一个图形的接口,接口有两个方法,第一个方法
能返回这个图形是什么类型,用字符串形式返回,第二个方法
表示绘制图形。再定义一个实现图形接口的抽象类,里面实现
接口的第二个方法。再定义长方形,圆形,三角形三种图形通
过继承抽象类来实现图形这个接口。再写一个Main Class来用
模拟多态。

解决方案 »

  1.   

    public static void fillTriangle(Graphics g, int i, int j, int k, int l,
                                      int i1, int j1)
      {
        int ai[] = new int[4];
        int ai1[] = new int[4];
        ai[0] = i;
        ai[1] = k;
        ai[2] = i1;
        ai1[0] = j;
        ai1[1] = l;
        ai1[2] = j1;
        if (ai[0] > ai[1])
        {
          ai[3] = ai[1];
          ai1[3] = ai1[1];
          ai[1] = ai[0];
          ai1[1] = ai1[0];
          ai[0] = ai[3];
          ai1[0] = ai1[3];
        }
        if (ai[1] > ai[2])
        {
          ai[3] = ai[2];
          ai1[3] = ai1[2];
          ai[2] = ai[1];
          ai1[2] = ai1[1];
          ai[1] = ai[3];
          ai1[1] = ai1[3];
        }
        if (ai[0] > ai[1])
        {
          ai[3] = ai[1];
          ai1[3] = ai1[1];
          ai[1] = ai[0];
          ai1[1] = ai1[0];
          ai[0] = ai[3];
          ai1[0] = ai1[3];
        }
        int k1 = (ai1[1] - ai1[0]) * 2 + 1;
        int l1 = ai[1] - ai[0];
        int i2 = (ai1[2] - ai1[0]) * 2 + 1;
        int j2 = ai[2] - ai[0];
        int k2 = (ai1[2] - ai1[1]) * 2 + 1;
        int l2 = ai[2] - ai[1];
        if (l1 != 0 && j2 != 0)
        {
          for (int i3 = 0; i3 < l1; i3++)
          {
            int k3 = i3 + ai[0];
            int i4 = (k1 * i3) / l1 / 2 + ai1[0];
            int k4 = (i2 * i3) / j2 / 2 + ai1[0];
            g.drawLine(k3, i4, k3, k4);
          }
        }
        if (l2 != 0 && j2 != 0)
        {
          for (int j3 = 0; j3 <= l2; j3++)
          {
            int l3 = j3 + ai[1];
            int j4 = (k2 * j3) / l2 / 2 + ai1[1];
            int l4 = (i2 * (j3 + l1)) / j2 / 2 + ai1[0];
            g.drawLine(l3, j4, l3, l4);
          }
        }
      }
      

  2.   

    不用这么麻烦有一个画多边形的类java.awt.Polygon