Java での拡張と実装

Rupam Yadav 2023年10月12日
  1. Java で extends キーワードを使用してクラスを継承する
  2. Java で implements キーワードを使用してインターフェースを継承する
Java での拡張と実装

Java で特定の親クラスのプロパティと動作を再利用するために、オブジェクト指向プログラミング言語の重要な部分である継承の概念を使用します。この背後にある考え方は、コードの再利用性です。implements キーワードと extends キーワードの両方を使用して、親クラスの属性を持つ Java で新しいクラスを作成します。

以下の表を使用すると、extends および implements キーワードをよりよく理解できます。

定義 実装 クラス インターフェース メソッド
extends サブクラス(子)がベース(親)クラスを拡張すると、サブクラスは基本クラスで定義されたコードを継承できます。 クラスは別のクラスを継承できます。インターフェイスは、キーワード extends を使用して別のインターフェイスを継承できます。 クラスは 1つのクラスのみを拡張できます。 インターフェイスによって、任意の数のインターフェイスを拡張できます。 サブクラスクラスが親クラスを拡張している場合、基本クラスのすべてのメソッドをオーバーライドする場合としない場合があります。
implements implements キーワードは、インターフェースを実装するために使用されます。インターフェイスには抽象メソッドが含まれています。メソッド本体は、それを実装するクラスで定義されます。 implements キーワードを使用すると、クラスはインターフェースを実装できます。 1つのクラスで複数のインターフェースを実装できます。 インターフェイスが他のインターフェイスを実装することはできません。 インターフェイスを実装するクラスは、インターフェイス内のすべてのメソッドを実装する必要があります。

Java で extends キーワードを使用してクラスを継承する

以下のコードでは、基本クラスである Parent と、サブクラスとしての Child があります。Child クラスは Parent クラスを拡張します。これは、Child クラスが Parent クラス内で定義されたフィールドとメソッドにアクセスできるようになったことを意味します。

Test クラスでは、サブクラスクラス child のオブジェクトを作成し、その上でメソッド displayNumber() を呼び出します。親クラス内で定義されているメソッド displayString() は、同じ child オブジェクトで呼び出すことで実行できます。したがって、コードの再利用の目的を果たします。

public class Test {
  public static void main(String args[]) {
    Child child = new Child();
    System.out.println("Calling Child class method : " + child.displayNumber());
    System.out.println("Calling Parent class method from child : " + child.displayString());
  }
}
class Parent {
  String str = "Hello there!";
  public String displayString() {
    return str;
  }
}
class Child extends Parent {
  int number = 25;
  public int displayNumber() {
    return number;
  }
}

出力:

Calling Child class method : 25
Calling Parent class method from child : Hello there!

Java で implements キーワードを使用してインターフェースを継承する

以下のコードには、CatDog の 2つのインターフェースがあり、それぞれに抽象メソッドが含まれています。クラス Animals は両方のインターフェースを実装するため、インターフェースで定義されたメソッドを実装する必要があります。

したがって、Animals クラスは両方のインターフェースを実装し、Java のインターフェースの全体的な目的であるそれらの動作を定義しました。

interface Cat {
  public void meow();
}

interface Dog {
  public void bark();
}

class Animals implements Dog, Cat {
  @Override
  public void meow() {
    System.out.println("Cat meows");
  }

  @Override
  public void bark() {
    System.out.println("Dog barks");
  }
}
public class Test1 {
  public static void main(String args[]) {
    Animals animals = new Animals();
    animals.bark();
    animals.meow();
  }
}

出力:

Dog barks
Cat meows
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn