Fix the warnings first! Each warning might be a problem.
And you run now into a hiding issue.
I guess you had a warning while you did compile C#, right?
IIRC, in Java, all is virtual, while in C# only the so declared methods are.
(I'm not a Java programmer, though)
[EDIT]
This is the warning you get for C# in Visual Studio 2010:
Warning 1 'ConsoleApplication1.MyClass1.h1()' hides inherited member 'ConsoleApplication1.MyClass.h1()'. Use the new keyword if hiding was intended.
But I have to admit: when pressing F1 in Visual Studio 2010 on that warning to get more details on it, the help text from Microsoft is crap. No word about virtual/override. The simplest solution is not given: rename the hiding member, nor any word about virtual/overriding is given...
I would say: "no one" ever wants to hide a memeber - calls for maintenance trouble.
Any example why one would
want to
hide a member by applying the
new
keyword?
[/EDIT]