OK, so I'm somewhat experienced in Java, and am learning C#. I'm currently on the topic of Inheritance and Polymorphism. What I read is that if a base class has a method that is marked as virtual, then the inheriting class has the choice to override that method if it so desires. What I also read is that if you want to override said method, you need to add the override keyword to the method line, or new if you want to shadow the method. What I don't understand, is that during tests, the program will function the same exact way whether I add override new or I don't add it at all. I can still call base.methodname(); without complaint. All I get is a warning from Visual Studio that the child method is shadowing the parent one. No error.
What's the point, then, in having these keywords?