interfaceとかabstractって理解するまでが大変なんだよね。
ちなみに私はAndroidのソースコードを半年ほど研究して自由に使えるようになった。
Androidフレームワークの車輪を再発明してるとinterfaceの使い所なんてのも分かるようになった。

その結果、
abstractはドリルで穴が空けられた樽で、その穴に蛇口を付ける事が出来る物
interfaceは樽やドラム缶にドリルで穴を空けてそこに蛇口を付ける行為
と定義する事が一番自然な形に近い事が分かった。
車とかに例えるよりこっちの方が分かりやすいと思うんだけどなぁ