I'm just now moving from a beginner to intermediate level android programmer in the java language. i can successfully write a game framework of classes that work together to accomplish a task beyond basic things, like hello world. but i'm having issues with some pretty basic OOP concepts; When should i derive from an abstract class? When is it more efficient to use an Interface instead of simply sub classing a parent?
Basically, between extends, implements, and the abstract keywords, which keywords should be used instead of the others? i'm not looking for a basic definition, as i know them. i need to no when and why i should apply them to my code? what advantages does one have over the other? which is best for game development?
Ok specifically what i'm talking about is that i have a game framework that looks like this:
class screen implements graphics
class keyreader implements throughput
GameThread extends thread
class player extends character
class npc extends character
... are these good ways to write a game framework or should i stick to one type of OOP inheritance?