>>31
後半だけど個人的には
interface: インタフェースを定義
abstract class: インタフェース+一部の実装を定義
class: インタフェース+一部の実装を定義+残りの実装も全部定義

って思ってる
ポリモや抽象化ってのはどれを使ってもできることであって
ついてくる実装の分量だけによってこれらには差があると思う

思うだけで別に他の根拠は無いけど