举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > java接口的作用和意义 Java 接口

java接口的作用和意义 Java 接口

2023-03-11 12:20 Java教程

java接口的作用和意义 Java 接口

java接口的作用和意义

Java接口是一种特殊的类,它可以被其他类实现。它是一个抽象的概念,它不能被实例化,但是可以被其他类实现。Java接口的作用是为了规范和约束其他类的行为,使得这些类都遵循相同的标准。

Java接口有助于将复杂的代码分割成多个独立的部分,使得代码更加易读、易理解和易于修改。通过使用Java接口,开发人员可以将复杂的代码分割成多个独立的部分,并将这些部分封装在不同的接口中。这样做有助于降低耦合度,使得代码之间相对独立,便于修改和重用。

此外,Java接口也有助于面向对象开发中所需要遵循的一般原则——即“高内聚、低耦合”原则。通过使用Java接口,开发人员能够将不同功能封装在不同的接口中;耦合度也会降低;因此能够有效地遵循“高内聚、低耦合”原则。

总之,Java 接口是一个重要的工具;它既能帮助开发人员将复杂代码分割成独立部分并封装在不同的接口中;也能帮助开发人员遵循“高内聚、低耦合”原则。因此 Java 接 口对 Java 程序开 发者来说意义重大。

Java 接口

Java面向对象设计 - Java接口

什么是接口?

Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现。

在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。

接口通过抽象概念定义不相关类之间的关系。

例如,我们可以创建一个Person类来表示一个人,我们可以创建一个Dog类来表示一狗。

人和狗都可以走路。这里的步行是一个抽象的概念。狗可以走,人也是这样。这里我们可以创建一个名为Walkable的接口来表示walk的概念。然后我们可以有Person类和Dog类来实现Walkable概念并提供自己的实现。 Person类实现了Walkable接口,并使人以人的方式走路。Dog类可以实现Walkable界面,使狗以狗的方式走路。


例子

在下面我们将使用一个例子来说明为什么我们需要接口。

假设 Person 类有一个walk()方法。

public interface Walkable {
  void walk();
}

class Person implements Walkable {
  public Person() {
  }

  public void walk() {
    System.out.println("a person is walking.");
  }
}
class Dog implements Walkable {
  public Dog() {
  }
  public void walk() {
    System.out.println("a dog is walking.");
  }
}

类可以在其声明中使用关键字implements实现一个或多个接口。

通过实现一个接口,类保证它将为接口中声明的所有方法提供一个实现,或者类将自己声明为抽象。

如果一个类实现了Walkable接口,它必须提供walk()方法的实现。

像类一样,接口定义了一个新的引用类型。

当定义一个新的接口(例如,Walkable)时,我们定义一个新的参考接口类型。

以下声明有效:

Walkable  w;  // w  is a  reference variable of  type   Walkable

您不能创建接口类型的对象,因为接口是定义抽象概念。以下代码无效:

new Walkable(); // A  compile-time error

我们可以为一个类类型创建一个对象,但是我们可以使用一个接口类型变量来引用其类实现该接口的任何对象。

因为Person和Dog类实现了Walkable接口,所以Walkable类型的引用变量可以引用这些类的对象。

Walkable  w1  = new Person(); // OK 
Walkable  w2  = new Dog();     // OK

我们可以使用它的引用类型变量访问接口的任何成员。由于Walkable接口只有一个成员,这是walk()方法,我们可以编写如下代码:

// Let  the   person  walk 
w1.walk();
// Let  the   dog walk 
w2.walk();

当调用w1上的walk()方法时,它调用Person对象的walk()方法,因为w1指的是Person对象。

当调用w2上的walk()方法时,它调用Dog对象的walk()方法,因为w2指的是Dog对象。

当使用接口类型的引用变量调用方法时,它调用它所引用的对象上的方法。


例2

下面的代码创建了一个方法来使用interface我们的参数类型。

public class Main{
  public static void main(String[] args) {
    Walkable[] w = new Walkable[2];
    w[0] = new Person();
    w[1] = new Dog();

    Walkables.letThemWalk(w);
  }
}

class Walkables {
  public static void letThemWalk(Walkable[] list) {
    for (Walkable w : list) {
      w.walk();
    }
  }
}

声明接口

声明接口的一般语法是

<modifiers> interface <interface-name>  { 
    Constant-Declaration
    Method-Declaration
    Nested-Type-Declaration
}

接口声明以修饰符列表开头,可能为空。

像类一样,一个接口可以有一个公共或包级别的作用域。

关键字public用于指示接口具有公共范围。

缺少范围修饰符指示接口具有包级别作用域。具有包级别作用域的接口只能在其包的成员内引用。

关键字interface用于声明接口,后面是接口的名称。

接口的名称必须是有效的Java标识符。

接口体跟在其名称后面并放在大括号内。

接口的主体可以为空。以下是最简单的接口声明:

package com.;

interface Updatable  {
    // The interface body  is empty
}

像类一样,一个接口有一个简单的名称和一个完全限定名。关键字interface后面的标识符是其简单名称。

接口的完全限定名称通过使用其包名称和用点分隔的简单名称形成。

在上面的示例中,Updatable是简单的名称,com.java2s.Updatable是完全限定名称。

使用接口的简单和完全限定名的规则与类的规则相同。

下面的代码声明一个名为ReadOnly的接口。它有一个公共范围。

package  com.;

public interface  ReadOnly {
    // The interface body  is empty
}

接口声明总是抽象的,无论是否明确声明它是抽象的。

标记接口

标记接口是没有成员的接口。

标记接口标记具有特殊含义的类。

interface  Shape {
}
class Circle implements Shape{
}

Shape c = new Circle();

if (c instanceof Shape)  {
   System.out.println("Using a  Shape object");
}

Java API有许多标记接口。 java.lang.Cloneable,java.io.Serializable和java.rmi.Remote都是标记接口。

功能接口

仅具有一个抽象方法的接口被称为功能接口。

多态性 - 一个对象,多个视图

多态性是指对象具有多种形式的能力。

多态性是对象提供其不同视图的能力。

接口让我们创建一个多态对象。

阅读全文
以上是名动网为你收集整理的java接口的作用和意义 Java 接口全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们