我有一个基类和 2 个派生类。我有一个基类变量,它可以包含一个派生类。我想将该变量发送到接收派生类的方法。
由于我不知道变量包含什么,我可以做些什么来解决这个问题而无需显式转换?
代码:
Class A{
virtual public void foo1() {/.../}
}
Class B : A{
override public void foo1() {/.../}
}
Class C : A{
override public void foo1() {/.../}
}
Class D{
public foo(B argB) {/.../}
public foo(C argC) {/.../}
// in main
D varD = new D();
A varA = new B();
varD.foo(varA); //--->> Problem here need explicit casting
A varC = new C();
varD.foo(varC); //--->> Problem here need explicit casting
我不知道我要发送到哪个派生类,varD.foo
并且我想要对不同派生类进行不同的处理。我能做些什么?