【发布时间】:2009-03-16 14:29:28
【问题描述】:
我是接口和抽象类的新手。我想创建几个接口来为购物车系统的对象定义核心方法和变量。然后我想创建实现核心功能的抽象类。这个想法是,它们可以被其他类以稍微不同的方式用于不同的项目。
这是我的(精简)界面:
public interface ICart
{
...
List<ICartItem> CartItems { get; set; }
}
public interface ICartItem
{
int ProductId { get; set; }
int Quantity { get; set; }
}
这是我实现 ICart 的抽象 Cart 类(同样,只显示相关行):
public abstract class Cart : ICart
{
private List<CartItem> _cartItems = new List<CartItem>();
public List<CartItem> CartItems
{
get
{
return _cartItems;
}
}
}
还有我实现 ICartItem 的 CartItem 类:
public abstract class CartItem : ICartItem
{
...
}
当我尝试编译类时,我收到一条错误消息:“Cart”没有实现接口成员“CartItems”。 “Cart.CartItems”无法实现“ICart.CartItems”,因为它没有 System.Collections.Generic.List
我认为这里的想法是接口可以由许多类实现,这些类以不同的方式执行核心功能并添加新方法等。为什么我的接口需要知道实际使用的是什么类,只要该类实际上正确实现了接口?
【问题讨论】: