运行下面这个程序有问题,不知怎么回事,是接口继承接口的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Shaper
{
interface Ilane
{
int R
{
get;
set;
}
double area();
}
interface ISolid
{
int H
{
get;
set;
}
void tiji();
}
public class CCircle :Ilane,ISolid
{
protected int r;
protected int h;
public int R
{
get { return r; }
set { r = value; }
}
public int H
{
get { return h; }
set { h = value; }
}
public double area()
{
double s = 3.14 * r * r;
return s;
}
public void tiji()
{
}
}
class CCylinder : CCircle
{
new public void tiji()
{
double v = base.area() * base.H;
Console.WriteLine("圆柱的体积为:" + v);
}
}
class CCone: CCircle
{
new public void tiji()
{
double v = base.area() * base.H;
Console.WriteLine("圆锥的体积为:" + v);
}
}
class Program
{
static void Main(string[] args)
{
Ilane ile;
CCircle cr = new CCircle();
ile = (Ilane)cr;
ile.R = 5;
ISolid isl;
CCylinder cyl = new CCylinder();
isl = (ISolid)cyl;
isl.H = 10;
cyl.H = 10;
isl.tiji();
cyl.tiji();
CCone coe = new CCone();
isl = (ISolid)coe;
isl.tiji();
coe.H=10;
coe.tiji();
Console.WriteLine("圆的面积为:" + ile.area());
}
}
}运行后只有圆的面积,而没有圆柱与圆锥的体积,为什么?结果如下:
圆柱的体积为:0
圆锥的体积为:0
圆的面积为:78.5
请按任意键继续. . .怎样做才能解决让它显示出圆柱的体积和圆锥的体积
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Shaper
{
interface Ilane
{
int R
{
get;
set;
}
double area();
}
interface ISolid
{
int H
{
get;
set;
}
void tiji();
}
public class CCircle :Ilane,ISolid
{
protected int r;
protected int h;
public int R
{
get { return r; }
set { r = value; }
}
public int H
{
get { return h; }
set { h = value; }
}
public double area()
{
double s = 3.14 * r * r;
return s;
}
public void tiji()
{
}
}
class CCylinder : CCircle
{
new public void tiji()
{
double v = base.area() * base.H;
Console.WriteLine("圆柱的体积为:" + v);
}
}
class CCone: CCircle
{
new public void tiji()
{
double v = base.area() * base.H;
Console.WriteLine("圆锥的体积为:" + v);
}
}
class Program
{
static void Main(string[] args)
{
Ilane ile;
CCircle cr = new CCircle();
ile = (Ilane)cr;
ile.R = 5;
ISolid isl;
CCylinder cyl = new CCylinder();
isl = (ISolid)cyl;
isl.H = 10;
cyl.H = 10;
isl.tiji();
cyl.tiji();
CCone coe = new CCone();
isl = (ISolid)coe;
isl.tiji();
coe.H=10;
coe.tiji();
Console.WriteLine("圆的面积为:" + ile.area());
}
}
}运行后只有圆的面积,而没有圆柱与圆锥的体积,为什么?结果如下:
圆柱的体积为:0
圆锥的体积为:0
圆的面积为:78.5
请按任意键继续. . .怎样做才能解决让它显示出圆柱的体积和圆锥的体积
CCircle cr = new CCircle();
ile = (Ilane)cr;
ile.R = 5;
ISolid isl;
CCylinder cyl = new CCylinder();
cyl.R = 1;
isl = (ISolid)cyl;
isl.H = 10;
cyl.H = 10;
isl.tiji();
cyl.tiji();
CCone coe = new CCone();
coe.R = 1;
isl = (ISolid)coe;
isl.tiji();
coe.H = 10;
coe.tiji();
Console.WriteLine("圆的面积为:" + ile.area());你相应的对象的半径r没有赋值,则其值为默认值0。