在运行时处理多个可能的继承类

时间:2013-12-29 03:24:34

标签: c# inheritance

我正在使用C#创建我的第一个Windows Form Object Oriented计划。

我有一个基类,即:Game,有两个可能的继承类:VideoGame和BoardGame。

我的MainForm应该可以创建Game,VideoGame和BoardGame对象,然后提供几个TextBox来输入类属性的值。

我试图理解如何处理将会创建几个可能的不同类的可能性。

如果我有更好的解释自己:

public partial class MainForm : Form
{
   private Game newGame = new Game();

   private void saveButton_Click(object sender, EventArgs e)
   {
      newGame.Name = "Game Name";
   }
}

如果总是使用Game类,这将有效。但是我的表单应该可以使它成为基类Game对象,或者可能具有“Platform”属性的VideoGame子类。

在这种情况下,我不能使用MainForm的声明的newGame属性,因为它被修复为Game对象。

我意识到我可能在我的问题中含糊不清,而且我可能错过了面向对象编程的一些知识,但是关于如何实现这样一个应用程序的一般指导方针将非常感激。< / p>

1 个答案:

答案 0 :(得分:0)

通过尝试在此上下文中理解它们,您在某种程度上混淆了派生类的使用。 Game类的目的是包含所有派生类型共有的所有方法和属性。派生类型将具有更多特定于其上下文的附加属性和方法。派生类型也可以覆盖常见方法,例如startGame或endGame或gameOver。

您可能永远不会直接实例化Game对象。

你的练习稍微混淆了这一点,因为你正在谈论生成表单来设置类的属性,而这些属性并不是游戏类型本身的责任。您可能会有一个游戏类型的选择框,用于确定a)可用字段和b)要实例化的游戏类型。

一旦有了Game对象的实例,你可以调用任何基本方法或属性,无论它是videoGame还是boardGame。