我们能在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP