A°604 2024-10-10 17:15 采纳率: 0%
浏览 1
已结题

派生类中调用接口不成功

一个类库中,包含:一个父类,子类,和一个接口,如下图:

img

img

img

其中,在调用接口的时候显示:

img

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-10-10 17:22
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你的问题描述和代码片段来看,问题出现在你的Circle类没有实现IShape接口中的所有成员。你的IShape接口定义了两个成员:一个属性Length和一个方法Area()。但是在你的Circle类中,你只实现了这两个成员的签名,而没有具体的实现体。因此编译器报错说“Circle”没有实现接口成员。

    你需要为这两个成员提供具体的实现。对于属性Length,你需要提供一个具体的值或者计算方法;对于方法Area(),你需要提供一个具体的计算面积的方法。例如:

    public class Circle : Point, IShape
    {
        public double R { get; set; }
    
        public Circle(double x, double y, double r) : base(x, y)
        {
            R = r;
        }
    
        public override string Name
        {
            get { return "Circle"; }
        }
    
        public double Length 
        { 
            get { return 2 * Math.PI * R; } // 根据圆的周长公式计算长度
        }
    
        public double Area 
        { 
            get { return Math.PI * Math.Pow(R, 2); } // 根据圆的面积公式计算面积
        }
    }
    

    这样你的Circle类就实现了IShape接口的所有成员,就不会再出现编译器报错了。注意这里假设你的接口定义在正确的命名空间中,并且你的类能够访问到这个接口。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月17日
  • 修改了问题 10月10日
  • 创建了问题 10月10日