title: What is it called when a Java program is written to allow 3rd party modification by putting a new class name in a properties file?
body: <p>What is it called when a Java program is written to allow 3rd party modification by putting a new (external to the program) class name in a properties file?</p>
  
  <p>Let's say that the program has a class which implements Bicycles. The 3rd party wants to make changes to Bicycles but isn't given the source code. The program allows creation of a properties file which can "override" the actual names of classes which are called to implement certain functionality. For example, one could put something like:</p>
  
  <pre><code>Bicycles = com.thirdparty.Bicycles
  </code></pre>
  
  <p>This would cause the program to use "my" Bicycles class instead of theirs. I could then call their class, if I so desired, which would make my new class a sort of superclass of their Bicycles class.</p>