Method having an abstract class as a parameter

Posted by Ferhat on Stack Overflow See other posts from Stack Overflow or by Ferhat
Published on 2011-01-06T22:48:54Z Indexed on 2011/01/06 22:53 UTC
Read the original article Hit count: 234

Filed under:
|
|

I have an abstract class A, where I have derived the classes B and C. Class A provides an abstract method DoJOB(), which is implemented by both derived classes.

There is a class X which has methods inside, which need to call DoJOB(). The class X may not contain any code like B.DoJOB() or C.DoJOB().

Example:

public class X
{
private A foo;

public X(A concrete)
{
foo = concrete;
}

public FunnyMethod()
{
foo.DoJOB();
}

}

While instantiating class X I want to decide which derived class (B or C) must be used. I thought about passing an instance of B or C using the constructor of X.

X kewl = new X(new C());
kewl.FunnyMethod(); //calls C.DoJOB()

kewl = new X(new B());
kewl.FunnyMethod(); // calls B.DoJOB()

My test showed that declaring a method with a parameter A is not working. Am I missing something? How can I implement this correctly?

(A is abstract, it cannot be instantiated)

© Stack Overflow or respective owner

Related posts about c#

Related posts about abstract-class