title: Can I override a property's class with a subclass of the class in my .m file?
body: <p>Given that I have a Game class:</p>
  
  <pre><code>@interface Game : NSObject
  </code></pre>
  
  <p>with a CutthroatGame subclass:</p>
  
  <pre><code>@interface CutthroatGame : Game
  </code></pre>
  
  <p>If I have a property like this in my ViewController .h file:</p>
  
  <pre><code>@property (strong) Game *game;
  </code></pre>
  
  <p>Can I safely override the property like this in my ViewController .m file:</p>
  
  <pre><code>if (_playerCount == 3) {
      _game = [[CutthroatGame alloc] init];
  else {
      _game = [[Game alloc] init];   
  }
  </code></pre>
  
  <p>Edit: If this is supposed to work, how do I deal with the below error?</p>
  
  <p>CutthroatGame defines a number of additional properties, such as:</p>
  
  <pre><code>@property (strong) Player *opponent2
  </code></pre>
  
  <p>When I try to access them using the _game property of my ViewController, I get the following error:</p>
  
  <pre><code> _game.opponent2 = [players objectAtIndex:0]; -- ERROR: Property 'opponent2' was not found on object of type 'Game *'
  </code></pre>