using System;public interface Ishape
{
double area();
double circumference();
int sides();
}public class circle:Ishape
{
public int x;
public int y;
public double radius;
private const float pi=3.14159F;

public double area()
{
double thearea;
thearea =pi*radius*radius;
return thearea;
}

public double circumference()
{
return ((double) (2*pi*radius));
}

public int sides()
{
return 1;
}

public circle()
{
x=0;
y=0;
radius=0.0;
}
}public class square:Ishape
{
public int side;

public double area()
{
return((double)(side*side));
}

public double circumference()
{
return((double) (4*side));
}

public int sides()
{
return 4;
}

public square()
{
side=0;
}
}public class myapp
{
public static void Main()
{
circle mycircle=new circle();
mycircle.radius=5;

square mysquare=new square();
mysquare.side=4;

Console.WriteLine("displaying circle information:");
displayinfo(mycircle);

Console.WriteLine("\ndisplaying square information:");
displayinfo(mysquare);
}

static void displayinfo(Ishape myshape)   //这句是什么意思
{
Console.WriteLine("area:{0}",myshape.area());
Console.WriteLine("sides {0}",myshape.sides());

}
}帮我解析下!!!

解决方案 »

  1.   

    你代码里面不已经有解释了嘛~

    Console.WriteLine("displaying circle information:");
            displayinfo(mycircle);”
    static void displayinfo(Ishape myshape)
    {..}
    这里只要传入一个实现Ishap接口的对象进去,就能输出这个对象的area和sides.
      

  2.   

    接口方法就是
    Ishape.area()

    Ishape.sides()
      

  3.   

    circle 类和square类都实现Ishape 这个接口
    静态方法displayinfo的参数就是Ishape类型的变量,就是在里面输出根据myshape值的内容。
      

  4.   

    为何不能省略static void displayinfo(Ishape myshape) 中的mysharpe