Better to change protected to public? or create another method that calls the superclass
<p>I'm trying to create a game using the best practices to my knowledge. 
I have:</p>

<ul>
<li>a <code>VisibleObject</code> with a <code>protected void draw(Canvas c)</code> function</li>
<li>a <code>MapTile</code> that <code>extends VisibleObject</code> to draw itself.</li>
<li>a <code>Map</code> class that contains a LinkedList of MapTiles, <code>tiles</code>.</li>
</ul>

<p>In the <code>Map</code> class i wanted a loop like this:</p>

<pre><code>public void draw(Canvas c){
        for(MapTile tile : tiles){
            tile.draw(c);
        }
    }
</code></pre>

<p>But i realised i could not call draw upon each tile because it's a protected method in <code>VisibleObject</code>. 
I can think of 3 possible solutions:</p>

<ol>
<li>Just change <code>protected</code> to <code>public</code> in <code>VisibleObject</code>.</li>
<li>Create a public method of MapTile that just calls <code>super.draw(c)</code> (I think that's valid syntax?)</li>
<li>change the for loop in Map to something like this,  which i believe would make it valid. </li>
</ol>

<p>New Loop:  </p>

<pre><code>MapTile current;
for(MapTile tile : tiles){
    current = tile;
    current.draw(c);
}
</code></pre>

<p>Which solution would be better programming practice?</p>
