Since you have a Derived object, whenever you are calling addValue() you are goign to call teh most specific version of that method, in this case being value += 20. Since it is being called twice (once in superclass constructor, once in subclass constructor) the value will be 40.
When I die, I want people to look at me and say "Yeah, he might have been crazy, but that was one zarkin frood that knew where his towel was."
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com