【问题标题】:C# how to create add objects of abstract class to an Array? [closed]C#如何将抽象类的对象添加到数组中? [关闭]
【发布时间】:2020-10-26 04:06:09
【问题描述】:

1 在这段代码的最后,我接受所有输入值并将它们添加到 a 以添加到 Car 对象。

但是当我尝试实现一个抽象类时出现错误,有人知道解决这个问题的方法吗?即如何将抽象类的对象添加到列表/数组。非常感谢提前

     string[] values = input.Split(',');
     string make = values[0];
     string model = values[1];
             
              if (double.TryParse(values[2], out double fuelAmount) == false)
              Console.WriteLine("Failed to parse the fuelAmount from the file");
              
              if (double.TryParse(values[3], out double mileage) == false)
              Console.WriteLine("Failed to parse the mileage from the file");

                // create a new car
              myCarList.Add(new Car(make, model, fuelAmount, mileage));

【问题讨论】:

  • 您不能创建抽象类的实例。您的意思是添加继承抽象类的对象实例吗?问题中的代码与问题本身有什么关系?
  • 哪个类是抽象的?错误信息是什么?

标签: c# interface abstract-class


【解决方案1】:

您可以创建一个实现抽象类的类,然后使用该类添加到您的 List 或数组中,因为您无法创建抽象类的实例。

public abstract class your_class_name_1
{
 //do your stuff here
}

 //inherit your abstract class so you can access the members of your abstract class 
public class your_class_name_2 : your_class_name_1
{
 //do your stuff here 
}

//and in your main method
static void Main(string[] args)
{
 your_class_name_2 myclass = new your_class_name_2();
  //then do your code here
}

我不知道哪个类是哪个,但无论如何希望这会对你有所帮助

【讨论】:

  • 你测试过这段代码吗?
  • @Enigmativity 是
  • 看来你测试得不是很好。
  • @Enigmativity 我刚刚做了,哈哈,谢谢
  • @Enigmativity 我希望我能抓住一切哈哈
【解决方案2】:

该错误与将对象添加到列表无关。它是关于创建抽象类的对象。这与抽象类的定义背道而驰。在 OOP 中,不允许实例化抽象类。

【讨论】:

  • 你怎么知道 OP 试图“实例化一个抽象类”?他没有在他的问题中这么说。
  • 他解释说:“如何将抽象类的对象添加到列表/数组中”。从他的问题中,我发现他正在从一个抽象类创建一个对象,然后想将它添加到一个列表中。
  • 这是一个假设 - 该语句的完整上下文表明他在实现抽象类时遇到了麻烦。他的“即”然后说了与句子前面部分不同的内容,但可以解释为他有一个对象,该对象具有对抽象类的“引用”。在这一点上一切都变得模糊不清。
  • 我不同意你的观点。在教授开发人员超过 15 年之后,我非常熟悉新开发人员面临的典型问题。我们的头脑充满了假设,它们不一定是错误的。
  • 你是对的。很公平。
猜你喜欢
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多