在上一篇文章中,我们看到了 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中的接口。
|