Javaのクラスとインタフェースの違い
Javaのinterfaceは、こういうメソッド持ってますよ!というクラスに対しての仕様です。(interfaceはクラスじゃない)
java.util.ListはaddメソッドやaddAllメソッドなどを持っていますがinterfaceなので具体的なメソッドの中身(振る舞い)は書かれていません。
対してclassはそのメソッドがどういった事をするか具体的に書いているのがclassです。(具象クラスと言ったりもします)
なので
ArrayList<String> list = new ArrayList<>(); // NG
というように具体的なArrayListというクラスで変数を宣言するのではなく、Listというinterface(仕様)で宣言するのが正しいです。
List<String> list = new ArrayList<>(); // OK
interfaceは仕様で、implementは「実装する」という意味です。
ArrayListはクラスで、implements List
しているので、Listの仕様に沿ったクラスとなります。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント