質問: new HashMap(); できるだけ詳しく教えていただきたいです。 HashMapがmapを実装しているからとざっくりとは理解していますが、あっているでしょうか? もしくはどこかでキャストを行っている可能性があったりしますか? よろしくお願いします。
回答: リスコフの置換原則によるものです。 ざっくり言えばあるスーパークラスから派生したサブクラスはスーパークラスの特性(メソッドや変数等)を全て持つため、スーパークラスの参照型変数に代入できる。同様にインターフェイスを実装したクラスはインターフェイスの参照型変数に代入できるようになります。