Have you really read the new modifier ?
Use the new modifier to explicitly hide an element inherited from the base class. To hide an inherited element, declare it in the derived class using the same name and change it with the new modifier.
So, you have hidden the version from the base class. The fact that these two methods have the same name does not mean anything - they are no more connected with each other than two methods whose names sound the same.
This situation should generally be avoided, but the compiler will always know which method should be called, and therefore whether it has a return value or not. If access to the "method" is as follows:
Figure r = new Rectangle(); r.Draw();
Then the Figure Draw method will be called. The return value is not created and is not expected.
source share