Too Long; Didn't Read
Method overloading and overriding are two common forms of polymorphism in C# that are often confused because of their similar sounding names. In this article, we show the difference between the two with some practical code examples. Overloading is the ability to have multiple methods within the same class with the same name, but with different parameters. Overriding is known as compile-time (or static) polymorphism because each of the different overloaded methods is resolved when the application is compiled. In C#, overloading is static and overriding is determined at compile time and static.