我們能在 Java 中擴充套件介面嗎?請解釋。
Java 中的介面類似於類,但它只包含抽象方法和最終且靜態的欄位。
與類一樣,你可以使用 extends 關鍵字從另一個介面擴充套件一個介面,如下所示 −
interface ArithmeticCalculations{ public abstract int addition(int a, int b); public abstract int subtraction(int a, int b); } interface MathCalculations extends ArithmeticCalculations{ public abstract double squareRoot(int a); public abstract double powerOf(int a, int b); }
但是,當你實現子類的時候,你需要為兩個介面中的抽象方法提供主體。
示例
在以下示例中,我們建立了兩個介面,ArithmeticCalculations 帶有兩個抽象方法(加法和減法),還有 MathCalculations,其中,
import java.util.Scanner; interface ArithmeticCalculations{ public abstract int addition(int a, int b); public abstract int subtraction(int a, int b); } interface MathCalculations extends ArithmeticCalculations{ public abstract double squareRoot(int a); public abstract double powerOf(int a, int b); } public class ExtendingInterfaceExample implements MathCalculations{ 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 static void main(String args[]){ 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)); } }
輸出
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
擴充套件多個介面
透過使用 extends 關鍵字並用逗號 (,) 分隔介面,你可以用同樣的方式從一個介面擴充套件多個介面 −
interface MyInterface extends ArithmeticCalculations, MathCalculations{
示例
以下是展示如何從單個介面擴充套件多個介面的 Java 程式。
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(); } }
輸出
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
廣告