日期:2014-05-19  浏览次数:20971 次

抽象类回调?
abstract   class   Geometry  
{    
        public   abstract   double   ComputerArea();
}
class   Lader   extends   Geometry  
{  
        double   a,b,h;
        Lader(double   a,double   b,double   h)
        {    
              this.a=a;this.b=b;this.h=h;
        }
        public   double   ComputerArea()  
        {    
                  return((1/2.0)*(a+b)*h);
        }
}
class   Circle   extends   Geometry    
{    
        double   r;
        Circle(double   r)
        {    
              this.r=r;
        }
        public   double   ComputerArea()
        {    
              return(3.14*r*r);
        }
}
class   Cone  
{    
        Geometry   bottom;
        double   height;
        Cone(Geometry   bottom,double   height)  
        {  
                this.bottom=bottom;
                this.height=height;
        }
        void   changBottom(Geometry   bottom)  
        {
                this.bottom=bottom;
        }
        public   double   ComputerVolume()  
        {    
              return   (bottom.ComputerArea()*height)/3.0;
        }
}
public   class   Example
{  
        public   static   void   main(String   args[])  
        {  
              Cone   cone;
              Geometry   geometry;
              geometry=new   Lader(2.0,7.0,10.7);
              System.out.println( "梯形的面积 "+geometry.ComputerArea()--?);
              cone=new   Cone(geometry,30);
              System.out.println( "梯形底的锥的体积 "+cone.ComputerVolume());
              geometry=new   Circle(10);
              System.out.println( "半径是10的圆的面积 "+geometry.ComputerArea()--?);
              cone.changBottom(geometry);
              System.out.println( "圆形底的锥的体积 "+cone.Computer