Oop 面向对象的条件执行
所以,我正在寻找实现下一件事的正确方法。 举个例子,我对任何事情都有父类。我存储的变量是父类的对象 我想有条件地使这个变量对象成为子类 我知道如何用其他方法实现下面的事情(因为这里有很多方法),但我想要好的方法,所以我的代码看起来就是这样Oop 面向对象的条件执行,oop,pascal,Oop,Pascal,所以,我正在寻找实现下一件事的正确方法。 举个例子,我对任何事情都有父类。我存储的变量是父类的对象 我想有条件地使这个变量对象成为子类 我知道如何用其他方法实现下面的事情(因为这里有很多方法),但我想要好的方法,所以我的代码看起来就是这样 TObject obj; if something = 1 then obj := Child1; else if something = 2 then obj := Child2; 最后,在我的任务中,我想调用一些属于父类的函数,这些函数可
TObject obj;
if something = 1 then
obj := Child1;
else if something = 2 then
obj := Child2;
最后,在我的任务中,我想调用一些属于父类的函数,这些函数可以(或不可以)在子类中实现
UPD:
我自己找到了最好的解决方案(据我所见),看起来:
var obj : TParent;
case something of
1: obj := TChild1.Create;
2: obj := TChild2.Create;
使用返回正确子对象的方法将某个对象设置为对象。使用面向对象的原则。您将拥有一个父类,以及一些从父类继承的子类。对特定于子级的变量和功能使用重写。如果有适用于所有子类或父类的功能,那么在父类中实现它。起初,我以为你在问一些已经是面向对象范例一部分的问题(即多态性),但你的措辞令人困惑,我不确定我的第一个猜测是否正确。目前,我投票决定暂缓这个问题,因为“不清楚你在问什么”。请随意编辑您的问题,详细说明您的具体想法。您的问题似乎非常不清楚,因为听起来(正如@AndriyM所说)像是在问基本多态性。也许,这将有助于展示基本继承和多态性的实际可编译/可运行示例。如果这不是您所指的,请您的问题更清楚地说明您所问的问题。因此,如果这是您真正想要的解决方案,您的问题与OOP无关,而是询问如何在Pascal中进行分支(高效/简洁/随便)。