第三章java中的接口


在上一篇文章中,我们看到了 java 中提供部分抽象的抽象类。接口是java的核心部分之一,用于实现完全抽象。 接口一般用于为类提供契约来实现。接口没有任何方法的实现。一个类实现了一个接口,从而继承了接口的抽象方法。所以它是一种签订合同,你同意如果你实现了这个接口,那么你必须使用它的方法。它只是一个模式,它本身不能做任何事情。

默认情况下,接口中的所有方法都是 public 和 abstract 并且所有变量都是 public static final。

java中接口的语法:

/**
 * 
 * @author Arpit
 * All the methods in interface are public abstract by default
 *
 */
interface InterfaceName
{
   void method1();  
   int method2();
}

例如: 假设你有 Room 类作为你的 pojo 类。现在你希望你所有的房间都是可装饰的,所以你可以只实现可装饰的接口并实现装饰方法。

package com.arpit.java2blog;

interface Decorable
{
   void decorate(); 
}
public class Room implements Decorable{

    @Override
    public void decorate() {
        System.out.println("Decorating the room");
    }
}

接口和继承:

您也可以根据接口创建继承。一个接口只能扩展(扩展)另一个接口。

package com.arpit.java2blog;

interface interface1
{
    void method1();
}
interface interface2 extends interface1
{
    void method2();
}
public class ConcreteClass implements interface2{

    @Override
    public void method1() {
        System.out.println("In method 1");

    }

    @Override
    public void method2() {
        System.out.println("In method 2");      
    }   
}

关于java接口的要点:

  • 您需要使用“接口”关键字来声明接口。
  • 一个接口不能有任何方法实现。
  • 接口方法默认是公共抽象的。
  • 接口变量默认为 public static final。
  • 类使用implements关键字来使用接口。
  • 一个接口不能扩展另一个类位可以使用 extends 关键字扩展另一个接口。
  • 一个类需要重写接口的所有方法,除非它是抽象类,否则会出现编译错误。
  • 您需要非常仔细地设计界面,因为一旦您在业务逻辑中使用过,您将无法从界面中删除或添加方法。

例子:

让我们创建一个名为 Room.java 的接口。

package com.arpit.java2blog;

public interface Room {

    void showRoom();
}

创建名为“SimpleRoom”的类

package com.arpit.java2blog;

public class SimpleRoom implements Room {

    @Override
    public void showRoom() {
        System.out.println("Showing simple room");
    }
}

创建名为“SpecialRoom”的类

package com.arpit.java2blog;

public class SpecialRoom implements Room {

    @Override
    public void showRoom() {
        System.out.println("Showing special Room");

    }
}

创建名为“RoomInterfaceMain”的主类

package com.arpit.java2blog;

public class RoomInterfaceMain {

    public static void main(String[] args) {

        // You can assign interface reference variable to concrete implementation
        Room room=new SimpleRoom();
        room.showRoom();

        System.out.println("=================");

        // You can easily change implementation
        room=new SpecialRoom();
        room.showRoom();
    }
}

当你运行上面的程序时,你会得到下面的输出:

Showing simple room
=================
Showing special Room

Java 8 接口:

JDK 8 在接口中进行了重大更改。

Showing simple room
=================
Showing special Room

这就是java中的接口。


原文链接:https://codingdict.com/