Java におけるジェネリック クラスとジェネリック インターフェイスの違いと関係

王林
リリース: 2024-04-13 09:09:02
オリジナル
480 人が閲覧しました

ジェネリック クラスとインターフェイスの違いは、ジェネリック クラスはオブジェクトを作成し、データ メンバーを宣言し、拡張可能なクラスであるのに対し、ジェネリック インターフェイスはメソッドを宣言し、データ メンバーを持たず、インターフェイスの拡張のみができることです。それらの関係: どちらを使用しても、複数の型で動作するコードを作成し、型の安全性をチェックできます。

Java 中的泛型类和泛型接口的区别与联系

Java におけるジェネリック クラスとジェネリック インターフェイスの違いと関係

ジェネリック クラス

ジェネリック クラスを使用すると、型パラメーターを持つクラスを作成して、さまざまな種類のデータを操作できるようになります。ジェネリック クラスは、クラス名に山かっこ <> と型パラメータを続けて宣言します。例:

class MyGenericClass<T> {
    private T value;
    
    // ... 省略其他代码
}
ログイン後にコピー

ジェネリック クラスは、非ジェネリック クラスと同様に、任意の型で使用できます。ただし、ジェネリック クラスはコンパイル時に型パラメーターの型安全性をチェックします。

ジェネリック インターフェイス

ジェネリック インターフェイスはジェネリック クラスに似ていますが、クラスではなくインターフェイスを宣言します。ジェネリック インターフェイスを使用すると、さまざまな種類のデータで使用できる型パラメーターを備えたインターフェイスを作成できます。汎用インターフェイスは、インターフェイス名に山かっこ <> と型パラメータを続けて宣言します。例:

interface MyGenericInterface<T> {
    T getValue();
    void setValue(T value);
}
ログイン後にコピー

ジェネリック インターフェイスは、非ジェネリック インターフェイスと同様に、任意の型で使用できます。ただし、ジェネリック インターフェイスは、コンパイル時に型パラメーターの型安全性もチェックします。

違い

ジェネリック クラスとジェネリック インターフェイスの主な違いは次のとおりです。

  • ジェネリック クラスはオブジェクトを作成するのに対し、ジェネリック インターフェイスはメソッドを宣言します。
  • ジェネリック クラスはデータ メンバーを宣言しますが、ジェネリック インターフェイスはデータ メンバーを宣言しません。
  • ジェネリック クラスは他のジェネリック クラスまたは非ジェネリック クラスを拡張できますが、ジェネリック インターフェイスは他のジェネリック インターフェイスのみを拡張できます。

連絡先

ジェネリック クラスとジェネリック インターフェイスには次の共通点があります。

  • これらを使用すると、一緒に使用されるコードを作成できます。 。
  • これらはすべて、コンパイル時に型パラメーターの型安全性をチェックします。
  • これらは、非ジェネリックのクラスやインターフェイスと同様に、任意の型で使用できます。

実用的なケース

次に、ジェネリック クラスとジェネリック インターフェイスの使用例を示します。

public class Main {
    public static <T> void printList(List<T> list) {
        for (T item : list) {
            System.out.println(item);
        }
    }
    
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("Hello");
        list1.add("World");
        
        printList(list1);
    }
}
ログイン後にコピー

この例では、 # #printList メソッドは、あらゆるタイプのリストで使用できる汎用メソッドです。メソッドの型パラメータ T を使用すると、メソッドは任意の型の要素を含むリストを受け入れることができます。型パラメーターの型安全性チェックにより、メソッドはリストでのみ渡すことができ、他の型のコレクションでは渡すことができません。

以上がJava におけるジェネリック クラスとジェネリック インターフェイスの違いと関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート