Javaのextendsとimplementsの違いは何ですか

Javanoextendstoimplementsno Weiiha Hedesuka



Javaでは、「 伸びる ' と ' 実装する 」キーワードは、複数の機能を効果的に統合するために不可欠です。たとえば、すでに割り当てられている機能を継承して更新したり、データを適切な方法で整理したりするなどです。このような場合、「extends」および「implements」キーワードは、開発者側での作業を便利にし、リソースを効率的に管理するのに役立ちます。

このブログでは、Java の「拡張」と「実装」の違いに焦点を当てます。







Java「拡張」キーワード

ジャワ」 伸びる ” キーワードは子クラスによって使用されます。つまり、” 派生 ” 親クラスを継承します。つまり、” ベース 」の機能にアクセスして。



構文



クラスA {
//
}
クラス B は A を拡張します {
//
}





この構文では、「 B 「」は親クラス「」を継承した子クラスに相当します。 ”経由 伸びる 」というキーワード。

例 1: Java での「extends」キーワードの使用



この例では「 伸びる ” 親を継承するキーワード、つまり” ベース ' クラス:

クラスの親クラス {
文字列 x = '髪' ;
}
クラス子クラスは親クラスを拡張します {
パブリック文字列連結 ( ) {
戻る x.concat ( 「り」 ) ;
} }
パブリッククラス拡張 {
パブリック静的ボイドメイン ( 文字列引数 [ ) {
childclass オブジェクト = 新しい childclass ( ) ;
System.out.println ( オブジェクト.concat ( ) ) ;
} }

上記のコード スニペットに従って、次の手順を適用します。

  • まず、「」という名前の親クラスを宣言します。 親クラス ”。
  • その定義では、指定された変数を初期化します。
  • 次に、「」を介して親クラスから子クラスを継承します。 伸びる 」というキーワード。
  • 子クラス定義で、「」という名前の関数を定義します。 concat() ”。
  • 関数定義では、親クラスから変数を呼び出し、関連付けられた「」を介して指定された文字列を追加します。 concat() ' 方法。
  • の中に ' 主要() ” メソッドを使用して子クラス オブジェクトを作成します。 新しい ” キーワードと” 子クラス() 」コンストラクター。
  • 最後に、子クラスの関数を呼び出します。 concat() 」 作成されたオブジェクトを介して。

出力

この出力では、親クラスの機能、つまり「 変数(x) ” は、「extends」キーワードを介して適切に継承されるため、文字列はそれに応じて連結されます。

Java「実装」キーワード

実装する ” キーワードは、同じファイルまたは外部ファイルからクラスにインターフェイスを実装するために適用されます。

構文

パブリックインターフェース InterfaceName {
ボイド× ( ) ;
デフォルトの void y ( ) {
//
}
}
クラス z は InterfaceName を実装します {
// クラス本体
}

この構文では次のようになります。

  • バツ 」は抽象メソッドを指します。
  • 」はデフォルトの方法を示します。
  • クラスZ ” を実装したクラスに対応します。 インターフェース名 」インターフェース経由 実装する 」というキーワード。

例 2: Java での「implements」キーワードの使用

この特定の例では、インターフェースは「 概要 ' と ' デフォルト 」メソッドをクラスに実装できます。

インターフェースコード

パブリックインターフェースの時代 {
パブリックな空の名前 ( ) ;
デフォルトの無効なDOB ( ) {
System.out.println ( 「生年月日 -> 1999/8/28」 ) ;
} }

上記のインターフェイス コードには、「」という名前の抽象メソッドを含めます。 名前() ” とデフォルトのメソッドを定義します” 生年月日() 」というメッセージがそれぞれ出力されます。

クラスコード

次に、次のコード行に進みます。

クラスサンプルは age を実装します {
パブリックな空の名前 ( ) {
System.out.println ( 「名前→デイビッド」 ) ;
} }
パブリッククラスインターフェイス2 {
パブリック静的ボイドメイン ( 文字列引数 [ ) {
サンプル オブジェクト = 新しいサンプル ( ) ;
オブジェクト名 ( ) ;
オブジェクト.DOB ( ) ;
} }

このコード ブロックでは次のようになります。

  • 「」という名前のクラスを定義します。 サンプル 「インターフェースの実装」 ”経由 実装する 」というキーワード。
  • その(クラス)定義に、抽象メソッド「 名前() 」という名前が表示されるインターフェイスで指定されます。
  • の中に ' 主要() 」メソッドを使用して、説明したアプローチでクラス オブジェクトを作成します。
  • 最後に、作成したオブジェクトを使用して、それぞれ抽象メソッドとデフォルト メソッドを呼び出します。

出力

この結果は、デフォルト メソッドが呼び出され、実装されたインターフェイスに基づいて抽象メソッドが適切に適用されることを意味します。

Java における「拡張」と「実装」の主な違い

以下は、Java の「extends」キーワードと「implements」キーワードの主な違いの一部です。

伸びる 実装する
このキーワードは、クラスがその親クラスを継承するために使用したり、インターフェイスが他のインターフェイスを継承するために使用したりできます。 クラスは、「implements」キーワードを使用してインターフェイスを実装できます。
1 つのクラスによって拡張できる親クラスは 1 つだけです。 クラスは一度に複数のインターフェイスを実装/適用できます。
親クラスを拡張する子クラスが親クラスのすべてのメソッドをオーバーライドすることは必須ではありません。 インターフェイスを実装するクラスは、すべてのインターフェイス メソッドも同様に実装/適用する必要があります。

結論

伸びる ” キーワードは、クラスまたはインターフェイスでその親クラスまたは他のインターフェイスを継承するために使用できます。 実装する ” キーワードは、クラスがインターフェイスを実装するために使用します。このブログでは、Java の「拡張」と「実装」の違いを実際の例を使用して説明しました。