接口继承接口问题

zehochux 2010-04-06 04:34:17
运行下面这个程序有问题,不知怎么回事,是接口继承接口的问题。
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
请按任意键继续. . .

怎样做才能解决让它显示出圆柱的体积和圆锥的体积
...全文
76 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Peter200694013 2010-04-06
  • 打赏
  • 举报
回复
Ilane ile;
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。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧