posted 14 years ago
You can, but it is not what you want. When your program is designed well, superclasses should not know anything about the internals of their subclasses.
Here is an ugly example, in which I cast this to the subclass type (I recommend that you never do this in a real application, this is just to show that it's possible!):
Sometimes, however, you might want to create an abstract superclass that leaves some parts to be implemented by subclasses. This version is much better than the example above, because the superclass doesn't need to cast this to a specific subclass type and doesn't need to access the internals of the subclass: