interfaceが理解しずらい大きな要因は、道具のような側面 を持つからではないでしょうか。interfaceの使い方を覚える事で理解が進みますので5つの使い方を紹介したいと思います。 [使い方1] 依存性の逆転 抽象に依存させることで大切なデータや処理を外部から守る事ができます。 下記のコードではPlayerオブジェクトはセーブシステムの事を知りません。セーブシステムが変更になってもその影響を受けません。結果、大切なオブジェクトPlayerの安定性が向上します。確認、修正の必要が無いコードが多ければ多いほどバグは少なくなります。 サンプルコード Playerとセーブシステムを切り離す為のinterface public interface IPlayerStatusRepository { PlayerStatus Get(); void Set(PlayerStatus status