🙆

【Java】インターフェースの「型」と「インスタンス化」の違い

2024/01/18に公開

自分の中で理解が浅かったので、まとめておきます。

まとめ

インターフェースはインスタンス化できない。
インターフェースを実装した具象クラスをインスタンス化する。
しかし、インターフェース型の変数の定義は可能。

具体例

以下のようなコードは問題なくコンパイル・実行できる。

public interface Interface{}
public class myClass{}

public class Main {
 public static void main(String[] args){
  Interface[] ary = {new myClass(), new myClass(), null};
 }
}

補足

インターフェースと同様に、抽象クラスもインスタンス化はできないが、
抽象クラス型の変数を定義することは可能。

Discussion