Java 中接口
接口就像 Java 类,但它只有静态常量和抽象方法。Java 使用接口实现多重继承。Java 类可以实现多个 Java 接口。接口中的所有方法都是隐式公共和抽象的。
声明接口的语法
interface {
//methods
}
要在类中使用接口,请在类名后面添加关键字 implements
,后跟接口名称。
实现接口的示例
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
为什么需要接口?
为了更好地理解 Java 接口的概念,让我们看一个例子。 Media Player
类有两个子类:CD Player
和 DVD Player
。每一个都有其独特的播放音乐的实现方法。
另一个类 Combo drive
从 CD
和 DVD
都有继承。它应该继承哪种播放方法?这可能会导致严重的设计问题。因此,Java 不允许多重继承。
现在让我们再看一下 Dog
的例子吧。
假设你有一个要求,其中 dog
类继承了 animal
和 Pet
类(见下图)。但是你不能用 Java 扩展两个类。那你会怎么做?解决方案是接口 Interface
。
接口规则说,
- 接口是 100%抽象类,只有抽象方法。
- 类可以实现任意数量的接口。
Dog
类可以扩展到 Animal
类,并将接口实现为 Pet
。
Java 接口示例:
步骤 1: 将以下代码复制到编辑器中。
interface Pet{
public void test();
}
class Dog implements Pet{
public void test(){
System.out.println("Interface Method Implemented");
}
public static void main(String args[]){
Pet p = new Dog();
p.test();
}
}
步骤 2: 保存,编译和运行代码。观察输出。
类和接口之间的区别
类 | 接口 |
---|---|
在类中,你可以实例化变量并创建对象。 | 在接口中,你无法实例化变量并创建对象。 |
类可以包含具体(带实现)方法 | 该接口不能包含具体(带实现)方法 |
与类一起使用的访问说明符是 private 、protected 和 public 。 |
在接口中只使用一个说明符 - Public 。 |
什么时候使用接口和抽象类?
- 当需要为一组子类定义模板时,使用抽象类
- 在需要为其他类定义角色时使用接口,而不管这些类的继承树如何
必须知道接口的一些事实
- Java 类可以实现多个 Java 接口。该类必须实现接口中声明的所有方法。
- 类应该重写接口中声明的所有抽象方法
- 接口允许向对象发送消息,而不涉及它属于哪个类。
- 类需要为接口中声明的方法提供功能。
- 接口中的所有方法都是隐式公共和抽象的
- 无法实例化接口
- 接口引用可以指向其实现类的对象
- 接口可以从一个或多个接口扩展。类只能扩展一个类,但可以实现任意数量的接口
- 接口无法实现其他接口。如果需要,它必须扩展另一个接口。
- 在另一个接口内声明的接口称为嵌套接口
- 在声明时,必须初始化接口变量。否则,编译器将抛出错误。
- 该类无法在 java 中实现两个具有相同名称但返回类型不同的方法的接口。
摘要:
- 实现接口的类需要为接口中声明的方法提供功能
- 接口中的所有方法都是隐式公共和抽象的
- 无法实例化接口
- 接口引用可以指向其实现类的对象
- 接口可以从一个或多个接口扩展。类只能扩展一个类,但可以实现任意数量的接口