我有基本的抽象Goods类和继承的Book类。

abstract class Goods
{
    public decimal weight;
    string Title, BarCode;
    double Price;
    public Goods(string title, string barCode, double price)
    {
        Title = title;
        BarCode = barCode;
        Price = price;
    }
}

abstract class Book : Goods
{
    protected int NumPages;
    public Book(string title, string barCode, double price, int numPages)
        : base(title, barCode, price)
    {
        NumPages = numPages;
        weight = 1;
    }
    public override void display()
    {
        base.display();
        Console.WriteLine("Page Numbers:{0}", NumPages);
    }

}

我应该两次编写title类中存在的barCodepriceGoods吗?我能代替这个吗
 public Book(string title, string barCode, double price, int numPages)
        : base(title, barCode, price)

具有较少的冗余结构?

最佳答案

不,此代码不是多余的。您必须将值同时传递给Book构造函数和base构造函数。

我看到您在weight构造函数中分配了Book。如果需要,您也可以对其他TitleBarCodePrice进行相同的操作。然后,您的Goods构造函数将为空。但这意味着Goods的每个实现都必须这样做(如果逻辑更多,然后再简单分配,这将是一件坏事)。

关于c# - 抽象类字段冗余C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37938555/

10-09 13:31