基本クラスと 2 つの派生クラスがあります。派生クラスの 1 つを保持できる基本クラスの変数があります。その変数を、派生クラスを受け取るメソッドに送信したいと考えています。
変数が何を保持するかわからないため、明示的なキャストなしでこの問題を解決するにはどうすればよいですか?
コード:
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
、さまざまな派生クラスのさまざまな処理が必要です。私に何ができる?