13. The computer program product of claim 12 , wherein the abstract class is an interface class.
12. A computer program product comprising a computer useable medium having a computer readable program stored thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to: provide mapping metadata for mapping an abstract class to a corresponding concrete class implementing the abstract class; automatically scan through classes in the application code to identify instantiation statements; encounter an instantiation statement for the abstract class during processing of application code, wherein the instantiation statement does not specify a concrete class implementing the abstract class; and convert the encountered instantiation statement to specify the concrete class implementing the abstract class based on the mapping metadata, wherein: the mapping metadata is provided as annotations within the application code, the annotations are provided at one of a class-level, a method-level, a declaration-level, or a package-level, an annotation provided at a class-level is applied to all statements in the class, an annotation provided at a method-level is applied to only an associated method, an annotation provided at a package-level is applied to all classes in the package, and annotations at a lower level of abstraction supersede annotations at a higher level of abstraction.