>>66
一言で言えば、変数の型は抽象的な型でおkという事
山田さんってインスタンスは、日本人型でもOKだし、人間型でもOK、でも猫型には入らない

インターフェイスはインスタンスを生成できない
でも、型としては有効。
ただそれだけ。

インターフェイス型を引数に持つってことは、インターフェイスで定義されたことを満たしていればどんな変数でもOKという事だ。
引数がListであれば、ArrayListのインスタンスを渡しても、LinkedListのインスタンスを渡しても動作が保証される。
だが、ArrayList型を引数として指定されていると、LinkedListは渡せない。