iphone - 我可以用 .m 文件中的类的子类覆盖属性的类吗?
<p><p>鉴于我有一个游戏类:</p>
<pre><code>@interface Game : NSObject
</code></pre>
<p>带有 CutthroatGame 子类:</p>
<pre><code>@interface CutthroatGame : Game
</code></pre>
<p>如果我的 ViewController .h 文件中有这样的属性:</p>
<pre><code>@property (strong) Game *game;
</code></pre>
<p>我可以在我的 ViewController .m 文件中安全地覆盖这样的属性吗:</p>
<pre><code>if (_playerCount == 3) {
_game = [ init];
else {
_game = [ init];
}
</code></pre>
<p>编辑:如果这应该有效,我该如何处理以下错误?</p>
<p>CutthroatGame 定义了许多附加属性,例如:</p>
<pre><code>@property (strong) Player *opponent2
</code></pre>
<p>当我尝试使用 ViewController 的 _game 属性访问它们时,我收到以下错误:</p>
<pre><code> _game.opponent2 = ; -- ERROR: Property 'opponent2' was not found on object of type 'Game *'
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>绝对!这就是 <a href="http://en.wikipedia.org/wiki/Liskov_substitution_principle" rel="noreferrer noopener nofollow"><em>Liskov substitution principle</em></a>是关于。如果您从 <code>Game</code> 正确地继承 <code>CutthroatGame</code>,则将 <code>Game</code> 替换为其子类将没有问题。</p></p>
<p style="font-size: 20px;">关于iphone - 我可以用 .m 文件中的类的子类覆盖属性的类吗?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/17355381/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/17355381/
</a>
</p>
页:
[1]