关于声明功能的快速问题.可以说我有以下代码:
class a{
int var;
/* stuff*/
}
class b : a{
/* other stuff*/
}
class c : a{
/* more other stuff*/
}
class d{
myFunctionThatWantsTheIntNamedVar(SubClassOfClassA SomeClassUnknownAtCompileTime);
}
Run Code Online (Sandbox Code Playgroud)
和myFunctionThatWantsTheIntNamedVar()只需要,在a的基类中声明的整数(称为var).类d中的函数可以传递给类b或类c的实例,这在编译时是未知的(仅在运行时).
有没有办法我可以简明地声明一个函数,可以采用类b或c并获得相同的基本变量?
我在同一时间所做的是在d类中声明两个方法,如下所示:
class d{
myFunctionThatWantsTheIntNamedVar(c aClassCInstance);
myFunctionThatWantsTheIntNamedVar(b aClassBInstance);
}
Run Code Online (Sandbox Code Playgroud)
这很好,但两个方法中的代码都是IDENTICAL ......从我对面向对象编程的理解,如果代码相同,你应该能够将它组合成一个更好的函数.
有什么想法吗?只是在这里寻找最佳实践或其他建议,因为我在一家小公司工作并获得反馈有时很难.
编辑:对不起,我的代码中有错误,改为:
myfunctionThatWantsTheInNamedVar(a aClassAInstance);
Run Code Online (Sandbox Code Playgroud)
至:
myfunctionThatWantsTheInNamedVar(c aClassCInstance);
Run Code Online (Sandbox Code Playgroud)
我的错.