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つにまとめたい場合などに有効なテクニックなので、ぜひ活用してみてください。
-
Javaで2つの画像を比較する方法:RGB差分から類似度をパーセンテージで算出
2つの画像を比較する手順 Javaで2枚の画像を比較し、その差分をパーセンテージとして求めるには、以下の手順に従います。 ImageIO.read() メソッドを使って、比較対象となる2枚の画像を読み込みます。 それぞれの画像の幅と高さを取得し、両者のサイズが一致しているかを確認します。 各画像のピクセル値を取得し、そこからRGB(赤・緑・青)の各値を取り出します。 2枚の画像の対応するピクセル同士のRGB値の差をすべて合計します。 次の式を使って、差分の割合(パーセンテージ)を計算します。 Average = difference / (width × height × 3); Perc
-
JavaでJSONをパース(解析)する方法|org.json・Gson・JsonPathの使い方を解説
このチュートリアルでは、JavaでJSONを解析(パース)する方法を、複数のライブラリの使い方とあわせて解説します。 JSONとは「JavaScript Object Notation」の略称で、JavaScriptのサブセットをベースとした軽量なデータ形式です。 データ交換フォーマットとして広く普及しており、Webプログラミングにおいて不可欠な技術となっています。本記事では、org.jsonライブラリを使ったJSONのパース方法を中心に紹介します。 まず基本をおさらいしましょう。JSONオブジェクトは「キーと値のペア」から構成される順序のない集合です。一方、JSON配列は値が順序付けて格納さ