比較チャート
比較基準 | 広がる | 実装 |
---|---|---|
基本 | extendsキーワードは、スーパークラスの機能を使用してサブクラスを作成するために使用されます。 | implementsキーワードは、インターフェースの実装に使用されます。 |
方法 | extendsキーワードは、スーパークラスのすべてのメソッドをオーバーライドするわけではありません。 | implementsキーワードは、実装されているインタフェースのすべてのメソッドを実装する必要があります。 |
クラス | クラスは1つのスーパークラスしか拡張できません。 | クラスは複数のインタフェースを実装できます。 |
インタフェース | インターフェイスは複数のインターフェイスを拡張できます。 | インタフェースは他のインタフェースを実装できません。 |
extendsキーワードの定義
継承は、オブジェクト指向プログラミングにおける重要な概念であり、サブクラスが別のスーパークラスを拡張するときに実現されます。 サブクラスは1つのスーパークラスのみを拡張できます。 クラスは、Javaの複数のスーパークラスを拡張することはできません。 クラスが別のクラスを拡張すると、スーパークラスで定義されているメソッドをオーバーライドできます。 例を使ってキーワードの拡張を理解しましょう。
クラスA {String s; A(文字列s1){s = s1; void display(){System.out.println(+ s);} //表示文字列。 クラスBはA {String i;を拡張します。 B(文字列s1、文字列i1){スーパー(s1); i = i1。 void dispaly(){super.dispaly();} / *クラスAのdisplay()が呼び出されました。* / System.out.println(+ i); オーバーライド{public static void main(String args []){B ob = new B(Tech、Differences);}} ob.display(); / *呼び出されたクラスBの表示* /}} / *出力* /技術的な違い
上記のコードでは、クラスBがクラスAを拡張し、クラスAで定義されているメソッドdisplay()をオーバーライドしていることがわかります。同様に、インターフェイスは一度に複数のインターフェイスを拡張できます。 インターフェースは拡張インターフェースのメソッドを実装する必要がないため、一度に複数のインターフェースを継承することができます。
implementsキーワードの定義
キーワードimplementsを使用して、クラスはインタフェース内のすべてのメソッドを継承します。 クラスがインタフェースを実装するとき、そのクラスは実装されたインタフェースのすべてのメソッドを実装しなければなりません。 implementsキーワードはメソッドの実装を約束するが、インタフェースはその中にメソッドを実装しないので、インタフェースは別のインタフェースを実装することはできない。そのため、インタフェースが別のインタフェースを実装することは不可能である。 例を使ってimplementsキーワードを理解しましょう。
インタフェース文字列{void display(String s);} インターフェイス整数{void show(int i);} クラスのデモは、文字列を実装しています、整数{void show(int i){System.Out.Println( "integer value:" + i);} void display(String s){System.Out.Println( "string value:" + s);} クラスDemo_main {public static void main(string args []){Demo d = new Demo();}} d.display( "TechDifferences"); ショウ(2); d。 / * output * / TechDifferences 2
上記のコードのように、クラスデモは2つのインターフェース文字列とintegerを実装し、display()とshow()の両方のインターフェースで宣言されたメソッドを実装していることがわかります。
拡張と実装の主な違い
- クラスは別のクラスを継承することができます。または、インタフェースはキーワードextendsを使用して他のインタフェースを継承しますが、クラスはキーワードimplementsを使用してインタフェースを実装できます。
- スーパークラスを拡張するサブクラスは、スーパークラス内のすべてのメソッドをオーバーライドする場合としない場合があります。 一方、インターフェースを実装するクラスは、そのインターフェースのすべてのメソッドを定義/実装する必要があります。
- クラスは、同時に任意の数のインタフェースを実装できます。 一方、クラスは1つのスーパークラスしか拡張できません。
- インタフェースは任意の数のインタフェースを拡張できますが、メソッドとインタフェースを定義する実装手段としてインタフェースが他のインタフェースを実装することはできません。そのため、インタフェースは別のインタフェースを実装できません。
結論:
インターフェイスを実装することで、クラスを拡張することよりもコードの柔軟性が増すという説明を終えました。 Javaではスーパークラスを1つだけ継承するという制限がなくなるので。 implementsキーワードを使用すると、クラスは複数のインタフェースの機能を継承できます。