参考摘自:http://www.runoob.com/java/java-interfaces.html
接口(interface)在Java中是一个抽象类型,是抽象方法的集合。
一个类通过implements继承接口,来实现接口中所有抽象方法。(抽象类除外)
声明接口:
interface Animal{ public void eat(); public void travel(); }
接口有以下特性:
1.接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字
2.接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字
3.接口中的方法都是公有的
接口的实现:
类使用implements关键字实现接口。
当类实现接口时,需要实现接口中所有的方法,否则,类必须声明为抽象类
实例:
public class Dog implements Animal{ public void eat(){ System.out.println("Dog eat"); } public void travel(){ System.out.println("Dog Travel"); } public void otherMethod(){ System.out.println("This class method"); } public static void main(String[] args){ Dog d = new Dog(); d.eat(); d.travel(); } }
运行结果:
Dog eat
Dog Travel
接口的继承:
使用extends关键字,与类之间的继承相似
//文件名:Sports.java public interface Sports{ public void setHomeTeam(String name); public void setVisitingTeam(String name); } //文件名:Football.java public interface Football extends Sports{ public void homeTeamScored(int points); } //文件名:Hockey.java public interface Hockey extends Sports{ public void homeGoalScored(); }
Football接口自己声明了一个方法,从Sports继承了两个方法,这样实现Football接口的类需要实现3个方法
接口的多继承:
类不能多继承,但接口可以
public interface Hockey extends Sports,Football
标记接口:
没有任何方法的接口称为标记接口。
package java.util; public interface EventListener{}