本人初学java,求助一个程序,怎么样用多态求长方形、圆形的周长和面积呢???

解决方案 »

  1.   

    构建一个多边形的抽象类,里面有面积和周长两个字段和相应的get set方法
    然后再构建诸如圆和长方形等的具象类继承之,相应的方法该override的override 如此这般。
      

  2.   

    public class Test
    {
    //长方形周长
    public static float getGirth(float a,float b)
    {
    return (a+b)*2;
    }
    //圆周长
    public static double getGirth(float r){
    return 2*3.1415926*r;
    }
    //长方形面积
    public static float getArea(float a,float b){
    return a*b;
    }
    //园面积
    public static double getArea(float r){
    return 3.1415926*r*r;
    }

    public static void main(String[] arg){
    System.out.println("aaaaaaaaaaa");
    System.out.println("长方形周长 : "+Test.getGirth(2,3));
    System.out.println("圆周长 : "+Test.getGirth(2));
    System.out.println("长方形面积 : "+Test.getArea(2,3));
    System.out.println("园面积 : "+Test.getArea(2));
    }
    }
    测试过的
      

  3.   

    利用接口实现的:
    包含set,get方法的接口:
    public interface JieKou
    {
       public  void  setMianJi(float chang,float kuan) ;

       public  float getMianJi() ;   public  void  setZhouChang(float chang,float kuan) ;   public  float getZhouChang() ;}
    实现接口类:public class JiSuan implements JieKou
    {
        float chang,kuan ;
    public void  setMianJi(float chang,float kuan) 
    {
       this.chang=chang ;
       this.kuan=kuan ;
    }
    public void setZhouChang(float chang,float kuan)
    {
       this.chang=chang ;
       this.kuan=kuan ;
    }
    public float getMianJi()
    {
       return chang*kuan ;
    }
    public float getZhouChang()
    {
       return (chang+kuan)*2 ;
    }
       public static void main(String[] args)
    {
       JiSuan js=new JiSuan() ;
       js.setMianJi(3.0f,2.0f) ;
       js.setZhouChang(3.0f,2.0f) ;
       System.out.println("长方形的面积为:"js.getMianJi()) ;
       System.out.println("长方形的周长为:"js.getZhouChang()) ;
    }
    }
      

  4.   

    class Shape{
    void Area(int r){};
    void Girth(int r){};
    void Area(int length,int width){};
    void Girth(int length,int width){};
    }
    class Circle extends Shape{
        void Area(int r){
         System.out.println("圆面积为:"+Math.PI*Math.pow(r,2));
        }
        void Girth(int r){
         System.out.println("圆周长为:"+2*Math.PI*r);
        }
    }
    class Rect extends Shape{
    void Area(int length,int width){
    System.out.println("长方形面积为:"+length*width);
    }
    void Girth(int length,int width){
    System.out.println("长方形周长为:"+(length+width)*2);
    }
    }
    public class Shapes {    public static void main(String[] args){
         Shape a=new Circle();
         Shape b=new Rect();
         a.Area(3);
         a.Girth(3);
         b.Area(3,2);
         b.Girth(3,2);
        }
    }