Method Overriding: The ability to define a method in a subclass with the same name as in its superclass, providing an alternative implementation for that specific method.
Polymorphism: The capability of an object to take many forms. In this case, an object of Class C can be treated as an instance of either Class A or Class B based on context.
Compile-Time Polymorphism: Also known as method overloading, where multiple methods with the same name but different parameters exist within a class.