🙆
【Java】インターフェースの「型」と「インスタンス化」の違い
自分の中で理解が浅かったので、まとめておきます。
まとめ
インターフェースはインスタンス化できない。
インターフェースを実装した具象クラスをインスタンス化する。
しかし、インターフェース型の変数の定義は可能。
具体例
以下のようなコードは問題なくコンパイル・実行できる。
public interface Interface{}
public class myClass{}
public class Main {
public static void main(String[] args){
Interface[] ary = {new myClass(), new myClass(), null};
}
}
補足
インターフェースと同様に、抽象クラスもインスタンス化はできないが、
抽象クラス型の変数を定義することは可能。
Discussion