If i understand what you're asking, what we have is this...
ok. now i make
we all agree that b can call method1, method2 and method3. all are legal, and method2 will get our overridden version.
what can we do with a? since a is an A-type object, it a ONLY KNOWS about method1 and method2. you cannot call method3 using a. but when you call method2,
you should get the correct overridden version defined in B.
Both references (a and b) point to the same object in memory. But the a-reference doesn't know that a method3 exists, so the compiler will complain.
at least, i THINK that's how it works.
[ July 27, 2004: Message edited by: fred rosenberger ]