private interfaces or abstract classes: what are my choices
<p>So here is my problem:</p>

<p>I have used a number of interfaces in my project to help maintain good coding style, however, the design of my software suggests I may be able to export this as a library that I and others can use.</p>

<p>The problem is that of accessibility.  In some of my interfaces I do not want others to have access to the methods, but Java enforces them to be public. This is OK in my own projects but I don't want others to be able to access these methods.  </p>

<p>For example, I have one interface called Sprite with some of the methods below</p>

<pre><code>Sprite:
void update(Room room);
void draw(Room world, Canvas c);
void updateHealth();
void updateLocation(Room room);
int getLayer();
void shoot();
void setDirection(Direction direction);
...
</code></pre>

<p>This is good because all Sprites need these methods but some of them such as draw() I only want my Game Engine to use.</p>

<p>What are my options?</p>
