Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで複数のインターフェースを継承する方法!extendsキーワードの使い方を解説

Javaにおけるインターフェース(interface)はクラスによく似た仕組みですが、含まれるのが抽象メソッドと、finalかつstaticなフィールドのみである点が大きく異なります。

クラスと同じように、extendsキーワードを使えば、あるインターフェースを別のインターフェースから継承することができます。さらに、extendsキーワードの後ろに継承したいインターフェースをカンマ(,)で区切って列挙することで、1つのインターフェースから複数のインターフェースを同時に継承することも可能です。

interface MyInterface extends ArithmeticCalculations, MathCalculations{

サンプルコード

以下は、1つのインターフェースが複数のインターフェースを継承する様子を示したJavaプログラムです。MyInterfaceはArithmeticCalculationsとMathCalculationsの両方を継承しているため、これを実装するクラスは、3つのインターフェースで宣言されたすべての抽象メソッドを実装する必要があります。

interface ArithmeticCalculations{
   public abstract int addition(int a, int b);
   public abstract int subtraction(int a, int b);
}
interface MathCalculations {
   public abstract double squareRoot(int a);
   public abstract double powerOf(int a, int b);  
}
interface MyInterface extends MathCalculations, ArithmeticCalculations {
   public void displayResults();
}
public class ExtendingInterfaceExample implements MyInterface {
   public int addition(int a, int b) {
      return a+b;
   }
   public int subtraction(int a, int b) {
      return a-b;
   }
   public double squareRoot(int a) {
      return Math.sqrt(a);
   }
   public double powerOf(int a, int b) {
      return Math.pow(a, b);
   }
   public void displayResults(){
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter the value of a: ");
      int a = sc.nextInt();
      System.out.println("Enter the value of b: ");
      int b = sc.nextInt();      
      ExtendingInterfaceExample obj = new ExtendingInterfaceExample();
      System.out.println("Result of addition: "+obj.addition(a, b));
      System.out.println("Result of subtraction: "+obj.subtraction(a, b));
      System.out.println("Square root of "+a+" is: "+obj.squareRoot(a));
      System.out.println(a+"^"+b+" value is: "+obj.powerOf(a, b));
   }
   public static void main(String args[]){
      new ExtendingInterfaceExample().displayResults();
   }
}

実行結果

プログラムを実行し、値として「4」と「3」を入力すると、以下のような出力が得られます。

Enter the value of a:
4
Enter the value of b:
3
Result of addition: 7
Result of subtraction: 1
Square root of 4 is: 2.0
4^3 value is: 64.0

まとめ

このように、Javaではextendsキーワードとカンマ区切りを組み合わせることで、1つのインターフェースから複数のインターフェースを継承できます。機能ごとに分割されたインターフェースを1つにまとめたい場合などに有効なテクニックなので、ぜひ活用してみてください。

  1. Javaで2つの画像を比較する方法:RGB差分から類似度をパーセンテージで算出

    2つの画像を比較する手順 Javaで2枚の画像を比較し、その差分をパーセンテージとして求めるには、以下の手順に従います。 ImageIO.read() メソッドを使って、比較対象となる2枚の画像を読み込みます。 それぞれの画像の幅と高さを取得し、両者のサイズが一致しているかを確認します。 各画像のピクセル値を取得し、そこからRGB(赤・緑・青)の各値を取り出します。 2枚の画像の対応するピクセル同士のRGB値の差をすべて合計します。 次の式を使って、差分の割合(パーセンテージ)を計算します。 Average = difference / (width × height × 3); Perc

  2. JavaでJSONをパース(解析)する方法|org.json・Gson・JsonPathの使い方を解説

    このチュートリアルでは、JavaでJSONを解析(パース)する方法を、複数のライブラリの使い方とあわせて解説します。 JSONとは「JavaScript Object Notation」の略称で、JavaScriptのサブセットをベースとした軽量なデータ形式です。 データ交換フォーマットとして広く普及しており、Webプログラミングにおいて不可欠な技術となっています。本記事では、org.jsonライブラリを使ったJSONのパース方法を中心に紹介します。 まず基本をおさらいしましょう。JSONオブジェクトは「キーと値のペア」から構成される順序のない集合です。一方、JSON配列は値が順序付けて格納さ