To answer this question, you need to understand the concept of binding in programming languages.
Binding refers to the process of associating a method or function call with its corresponding implementation. There are two types of binding: early binding (static binding) and late binding (dynamic binding).
In Java, the default binding mechanism is early binding. Early binding refers to the process of binding a method call to its implementation at compile-time. This means that the compiler determines the method or function to be called based on the type of the object reference at compile-time.
However, Java also provides a mechanism called reflection that allows for late binding. Late binding refers to the process of determining the method or function to be called at runtime, based on the actual type of the object reference.
Using reflection, you can query a class about its properties, such as methods and fields, and operate on them by their name for a given object instance. This allows for dynamic invocation of methods and access to fields, even if they are not known at compile-time.
Therefore, the correct answer is:
A. Late binding - Reflection is possible in the Java language because it allows for late binding, enabling dynamic invocation of methods and access to fields at runtime.