title: How do I know when to use an enum or a sub-class?
body: <p>Let's say I am making a game of chess. Would it be more effective to have a base class of Piece()? With sub-classes for each type of piece.</p>
  
  <p>Or, an enum</p>
  
  <pre><code>enum Piece{
  King,
  Queen,
  Knight,
  etc;
  }
  </code></pre>
  
  <p>It also brings me onto a common problem I have when refining data.</p>
  
  <pre><code>GameObjects
  Piece extends GameObjects
  </code></pre>
  
  <p>Should I stop here and declare the objects with their individual properties?</p>
  
  <pre><code>Piece King = new Piece("King",5,10); //just made up values, no significance.
  </code></pre>
  
  <p>Or refine it further and have:</p>
  
  <pre><code>King extends Piece
  </code></pre>
  
  <p>and then handle King Pieces in a polymorphic way:</p>
  
  <pre><code>Piece king = new King("King,5,10);
  </code></pre>
  
  <p>thanks</p>