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:
Graphics interface
class screen implements graphics
Throughput interface
class keyreader implements throughput
GameThread extends thread
abstract character
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?
