Aspect Compile Time Polymorphism Runtime Polymorphism
Other Name Method Overloading Method Overriding
Binding Time Happens at compile time Happens at runtime
Speed Faster, as it is resolved during compilation Slower, as it is resolved during execution
Flexibility Less flexible, determined at compile time More flexible, allows for dynamic method invocation
Inheritance Requirement No inheritance required Requires inheritance and method overriding
Example Multiple methods with the same name but different parameters Subclass overrides a method from its superclass