欢迎来到百战百胜!我们致力于为广大IT从业者、学生和爱好者提供全面、实用的资源和服务。加入我们的聊天群,这里有专业大佬为你提供有价值的建议和指导!

想过如何在Java中实现接口吗?Java中的接口是Java中面向对象编程的巅峰。它实现了一个全新的数据抽象级别,并成倍地提高了代码的可读性和项目性能。

什么是Java中的接口?

Java Interface

在Java中,接口通过提供抽象类型来指定类的行为。作为Java的核心概念之一,该技术支持抽象、多态和多重继承。Java中使用接口来实现抽象。通过使用Implementes关键字,Java类可以实现接口。

一般而言,接口可以定义为存储要在代码段中实现的方法的签名的容器。它提高了抽象程度。

在简要介绍了Java中的接口之后,我们现在将探索为什么我们需要它,以及为什么我们应该更喜欢它而不是使用抽象类的传统方式。

Java中接口的必要性

因此,出于以下原因,我们需要Java中的一个接口:

  • 完全抽象

  • 多重继承

  • 松耦合

完全抽象

total-abstraction-in-Java-interface-in-Java

抽象是面向对象编程技术的关键概念。接口只存储方法签名,而不存储方法定义。方法签名通过向用户隐藏方法实现来实现接口的完全抽象。

多重继承

Multiple-inheritanece-in-Java-interface-in-Java

如果没有接口,多重继承的过程是不可能的,因为传统的继承多个父类的方式会导致严重的歧义。这种模棱两可的现象被称为钻石问题。接口解决了这个问题。

松耦合

loose-coupling-in-Java-interface-in-Java

术语耦合描述了一个类对另一个类的依赖性。因此,在使用接口时,我们单独定义方法和签名。通过这种方式,所有的方法和类都是完全独立的,并且归档了松散耦合。

现在,让我们看看如何实际实现它-从它的语法到一个实时示例。

Java接口语法

Syntax-of-interface-in-Java

因此,Java中的接口语法如下所示。

Interface <Interface Name> {

//Declare Constant Fields;

//Declare Methods;

//Default Methods; 

 }

解释了语法之后,现在让我们继续下一部分,在那里我们将通过一个示例。

Java接口示例

下面是Java中的一个理想的接口示例。这里我们尝试计算几何形状的面积,对于每个形状,我们有不同的方法。而且所有的方法都是定义的,彼此独立。只有方法签名才会写入接口中。

Example-interface-in-Java

//Interface
package simplilearn;
public interface Area {
public void Square();
public void Circle();
public void Rectangle();
public void Triangle();
}

//Class
package simplilearn;
import java.util.Scanner;
public class shapeArea implements Area {
public void Circle() {
Scanner kb = new Scanner(System.in);
System.out.println("Enter the radius of the circle");
double r = kb.nextInt();
double areaOfCircle = 3.142 * r * r;
System.out.println("Area of the circle is " + areaOfCircle);
}

@Override
public void Square() {
// TODO Auto-generated method stub
Scanner kb2 = new Scanner(System.in);
System.out.println("Enter the length of the side of the square");
double s = kb2.nextInt();
double areaOfSquare = s * s;
System.out.println("Area of the square is " + areaOfSquare);
}

@Override
public void Rectangle() {
// TODO Auto-generated method stub
Scanner kb3 = new Scanner(System.in);
System.out.println("Enter the length of the Rectangle");
double l = kb3.nextInt();
System.out.println("Enter the breadth of the Rectangle");
double b = kb3.nextInt();
double areaOfRectangle = l * b;
System.out.println("Area of the Rectangle is " + areaOfRectangle);
}

@Override
public void Triangle() {
// TODO Auto-generated method stub
Scanner kb4 = new Scanner(System.in);
System.out.println("Enter the base of the Triangle");
double base = kb4.nextInt();
System.out.println("Enter the height of the Triangle");
double h = kb4.nextInt();
double areaOfTriangle = 0.5 * base * h;
System.out.println("Area of the Triangle is " + areaOfTriangle);
}

public static void main(String[] args) {
shapeArea geometry = new shapeArea();
geometry.Circle();
geometry.Square();
geometry.Rectangle();
geometry.Triangle();
}
}

在这个例子之后,我们将学习另一个嵌套接口的例子,以及为什么它很重要。

Java中的嵌套接口

Nesting-interface-in-Java

使用嵌套接口的过程的目的是通过将相关接口或相关接口与类进行分组来解决命名空间问题。

所以这个特殊的例子是基于嵌套接口的。在这里,我们尝试使用接口嵌套打印前n个素数。

//Interface Nesting
//查找前15个素数
package InnerInterface;
public interface InterfaceOuter {
void display();

interface InterfaceInner {
void InnerMethod();
}
}

//class 
package InnerInterface;
import InnerInterface.InterfaceOuter.InterfaceInner;
public class NestedInterface implements InterfaceInner {
public void InnerMethod() {
int iteration = 0, num = 0, x = 1, y = 1;
while (num < 15) {
y = 1;
iteration = 0;
while (y <= x) {
if (x % y == 0)
iteration++;
y++;
}

if (iteration == 2) {
System.out.printf("%d ", x);
num++;
}
x++;
}
}

public static void main(String args[]) {
NestedInterface obj = new NestedInterface();
obj.InnerMethod();
}
}

这部分完成后,我们将继续学习接口和类之间的区别。

接口与类

虽然类和接口看起来有点相似,但它们彼此之间有很大的不同。它们之间的一些主要区别如下所示。

Interface

Class

使用的关键字: interface

使用的关键字: class

接口没有构造函数

类包括构造函数

接口仅存储方法的签名

类存储完整的方法定义

接口不需要访问说明符

在类中,访问说明符是必需的

接口不包括数据成员

类包括数据成员

接口没有静态成员

类包括静态成员

因此,讨论了这些差异之后,让我们继续下一部分,讨论Java中接口的缺点。

Java中接口的缺点

Disadvantages-interface-in-Java

  • 实际项目中的接口要么被广泛使用,要么根本不被使用。

  • 接口的使用会降低执行速度。

因此,这是在Java中使用接口的几个缺点。

至此,我们已经结束了“Java中的接口”这篇文章。我们希望您喜欢学习Java中的接口的基本概念。

接口只是Java中面向对象编程的关键概念之一。强烈建议阅读Java中的所有面向对象编程概念,以便更好地理解Java中的OOPS概念以及它们之间的相互依赖关系。