Abstraction is the most elegant part of the
Java language, and an interface is the most abstract component available. So, if the question is 'which one is more flexible and pluggable', then definitely the Interface is the right answer.
Look at the
Servlet and
JSP API. It seems like every class we take for granted, is an interface.
But obviously, not everything is an interface. Always use the right tool for the job.
-Cameron McKenzie