扫码一下
查看教程更方便
在 Java 中实现抽象的另一种方法是使用接口。
接口是 Java 中的引用类型。它类似于类。它是抽象方法的集合。一个类实现了一个接口,从而继承了接口的抽象方法。
除了抽象方法,接口还可以包含常量、默认方法、静态方法和嵌套类型。方法体仅存在于默认方法和静态方法。
编写接口类似于编写类。但是一个类描述了一个对象的属性和行为。接口包含类实现的行为。
除非实现接口的类是抽象的,否则接口的所有方法都需要在类中定义。
接口在以下方面类似于类
但是,接口在以下几个方面与类不同,包括
抽象类和接口的区别
interface 关键字用于声明接口。 下面是一个声明接口的简单示例
interface Animal {
public void animalSound(); // 接口方法 (没有方法体)
public void run(); // 接口方法 (没有方法体)
}
接口具有以下属性
要访问接口方法,接口必须由另一个类使用 implements
关键字(而不是 extends )“实现”(有点像继承)。 接口方法的方法体由“实现”类提供:
示例
interface Animal { public void animalSound(); // 接口方法 (没有方法体) public void run(); // 接口方法 (没有方法体) } // Pig "实现" Animal 接口 class Pig implements Animal { public void animalSound() { // animalSound() 方法体的定义 System.out.println("The pig says: wee wee"); } public void sleep() { // sleep() 方法的定义 System.out.println("Zzz"); } } public class Main { public static void main(String[] args) { Pig myPig = new Pig(); // 创建一个 Pig 对象 myPig.animalSound(); myPig.sleep(); } }
上面示例代码编译执行结果如下
The pig says: wee wee
Zzz
重写接口中声明的方法时,需要注意以下规则:
在实现接口的时候,也要注意一些规则:
要实现多个接口,请用逗号分隔它们:
interface FirstInterface { public void myMethod(); // interface method } interface SecondInterface { public void myOtherMethod(); // interface method } class DemoClass implements FirstInterface, SecondInterface { public void myMethod() { System.out.println("Some text.."); } public void myOtherMethod() { System.out.println("Some other text..."); } } class Main { public static void main(String[] args) { DemoClass myObj = new DemoClass(); myObj.myMethod(); myObj.myOtherMethod(); } }
上面代码运行结果如下
Some text..
Some other text...
最常用的继承接口是没有包含任何方法的接口。
标记接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。
标记接口作用:简单形象的说就是给某个对象打个标(盖个戳),使对象拥有某个或某些特权。
例如:java.awt.event 包中的 MouseListener 接口继承的 java.util.EventListener 接口定义如下:
package java.util;
public interface EventListener
{}
没有任何方法的接口被称为标记接口。标记接口主要用于以下两种目的: