Javaのインターフェースとは何ですか? Javaインターフェイスのビギナーズガイド。 それの使い方? 添付の例。
公開: 2020-10-31
インターフェースを使用する理由と時期
- インターフェイスはJavaの参照型です。
- クラスに似ています。
- これは、抽象メソッドのコレクションです。
- これは、完全な抽象化を実現するために使用されます。
これがJavaインタビューで期待できる最初の質問だと思います。 非常に基本的な質問ですが、インタビューで広く使用されています
これに対する完璧な答えはなく、この質問に答える方法はたくさんあります。 この質問の実際的なアプローチを探しているインタビュアーかもしれませんか? 可能。
次に、Javaインターフェイスの基本的な定義から始めましょう。
複数の例で同じことを説明します。
- Javaのインターフェースとは何ですか?
- リアルタイムの例を使用したJavaのインターフェースとは何ですか?
- Javaでインターフェイスを使用する理由
- インターフェイスデザインJava
- インターフェイスに関する最も一般的な面接の質問
インターフェイスの基本:

-
interface
は単なるコントラクトであり、実装クラスが持つ動作の説明です。 実装クラスは、クラスで使用できるこれらのメソッドを確実に持つようにします。 それは基本的にクラスがしなければならない契約または約束です。 - プロジェクトで、さまざまな実装のすべてが同じメソッドシグネチャを共有している場合はどうなりますか? その場合、インターフェースが最適に機能します。
- 主要なプロジェクトの実装後の後の段階で、インターフェイス定義を最大50の場所に実装したかどうかを確認しましょう。インターフェイスを変更した場合はどうなりますか? プロジェクト内の50か所すべてに変更を加える必要があります。
- 後の段階で変更するのではなく、設計段階でインターフェイスの定義にもう少し時間をかけることをお勧めします。
- インターフェイスは、
singleton
変数(public static final
)とpublic abstract
メソッドで構成されます。 私たちは通常、何をすべきかはわかっているが、方法がわからない場合は、リアルタイムのインターフェースを好みます。 インターフェイスにインスタンスフィールドを含めることはできません。 - インターフェイスを実装するクラスは、存在するすべてのメソッドのメソッド定義を提供する必要があります。
- クラスは複数のインターフェースを実装する場合があります。
- インターフェイスの実装は、既存のサードパーティクラスに追加できます。
- インターフェイスには、任意の数のメソッドを含めることができます。
- Javaでは、インターフェースをインスタンス化することはできません。
- インターフェイスにはコンストラクタが含まれていません。
- インターフェイスはクラスによって拡張されません。 クラスによって実装されます。
- インターフェイスは複数のインターフェイスを拡張できます。
インターフェイスの例:
ヒント1。
インターフェイスCrunchifyDatabaseInterface.java
作成します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public interface CrunchifyDatabaseInterface { // Basic Database CRUD Operations // Insert boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) ; // Delete public boolean deleteCrunchifyRecord ( UUID id ) ; // Get public Map < String , String > getListOfAllCrunchifyRecords ( ) ; // Update boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) ; } |
ヒント2。
インターフェイスCrunchifyDatabaseOracleImpl.java
実装します
最初にインターフェースを実装すると、Eclipseは実装されていないメソッドを追加することを示します。

「 Add unimplemented methods
」をクリックするだけで、IMPLクラスにAuto-generated method stub
準備が整います。
ヒント3.実際の実装方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public class CrunchifyDatabaseOracleImpl implements CrunchifyDatabaseInterface { // Override: Indicates that a method declaration is intended to override a method declaration in a supertype. // If a method is annotated with this annotation type compilers are required to generate an error message unless at least one of the following conditions hold: // The method does override or implement a method declared in a supertype. // The method has a signature that is override-equivalent to that of any public method declared in Object. @Override public boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // UUID(): A class that represents an immutable universally unique identifier (UUID). // A UUID represents a 128-bit value. // There exist different variants of these global identifiers. // The methods of this class are for manipulating the Leach-Salz variant, although the constructors allow the creation of any variant of UUID @Override public boolean deleteCrunchifyRecord ( UUID id ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // Map(): An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. // This interface takes the place of the Dictionary class, which was a totally abstract class rather than an interface. @Override public Map < String , String > getListOfAllCrunchifyRecords ( ) { // TODO Provide your actual implementation here based on your need specific to Oracle return null ; } @Override public boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } } |
ヒント4。
同様の方法で、同じインターフェイスを使用して、異なるデータベース固有の操作を実装できます。 たとえば、DB2、MySQL、MongoDB、CassandraDBなどの場合。

次は何ですか?
抽象クラスに関するチュートリアルを作成し、次に抽象クラスとインターフェイスの違いを明確に示す別のチュートリアルを作成しています。