Java中的接口类似于类,但是它仅包含final和static的抽象方法和字段。
就像类一样,您可以使用extend关键字将一个接口从另一个接口继承,如下所示-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