原則、右辺のパラメータが左辺で成り立つかどうかをチェックすればよい。
ArrayList arry = new ArrayList(); List list = arry;
こちらは、StringがObjectのサブクラスであるので成り立つ。
ArrayList arry = new ArrayList(); List list = arry;
こちらは、ObjectがStringのサブクラスではないのでコンパイルエラーになる。
ArrayList list = new ArrayList();
こちらは、ObjectはStringではないのでコンパイルエラーになる(ポリモーフィズムは適用されない)
ArrayList list = new ArrayList();
こちらは、StringがObjectのサブクラスなので成り立つ。
ArrayList list = new ArrayList();
こちらは、StringはStringなので成り立つ。
コメントを残す