接口的概念:它是一种100%的抽象的类,接口里所有的方法都是抽象方法,换句话说,接口中没有具体实现的方法。接口中的抽象方法会在不同的类中去实现,会具有不同的行为。
接口的定义:使用"interface"关键字来取代"class"关键字。
接口的实现:使用"interface"关键字。
接口的作用:
Java接口是Java语言中存在的结构,有特定的语法和结构,Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口实现和类继承的规则不同,因为Java接口不涉及表象,因此Java接口本身没有任何实现。
使用接口要特别注意以下几点:
1.JAVA接口(interface)是一种特殊的抽象类,这种抽象类中只包含常量和方法的声明,而没有变量和方法的实现。JAVA接口只能被pubilc修饰符修饰。
2.JAVA接口中声明的属性默认是且只能是public static final的。
3.JAVA接口中只能定义public的抽象方法。
4.实现一个JAVA接口,必须实现其中定义的所有方法。
5.JAVA中一个类可以实现多个接口,实现多个接口是接口名称之间用”,“隔开。
6.和抽象类一样,接口不能被实例化。
第一步:抽象出JAVA接口
主人和老鼠听到猫大叫以后都会有相同的行为reponse(反应),但是他们对reponse方法各自有不同的实现,因此我们可以抽象出来一个接口Actor(代表参与者),在其中定义reponse方法。
/*
*参与者接口
*/
public interface Actor(){
public void reponse(); //参与者的反应,比如老鼠见到猫的反应。
}
第二步:实现JAVA接口
下面主人和老鼠实现参与者接口,各自实现reponse方法。
public class Master implements Actor(){
//主人听到猫叫的反应
public void reponse(){
System.out.println("主人被惊醒!");
}
}
public class Mouse implements Actor(){
//老鼠见到猫的反应
public void reponse(){
System.out.println("老鼠开始逃跑");
}
}
第三步:使用JAVA接口
接口的制定者和实现者都已经创建完毕,我们知道只有实现者和调用者都遵循”面向接口编程“这个准则,制定者的协调目的才能达到,那么实现者已经遵循”面向接口编程“实现了制定者制定的接口,下面就看看调用者如何遵循”面向接口编程“这个准则。
/*
*猫类
*/
public class Cat(){
private Actor actor=null; //参与者
//设置参与者
public void setActor(Actor actor){
this.actor=actor;
}
}
public void cry(){
System.out.println("猫大叫一声");
this.actor.reponse(); //参与者的反应
}
public static void main(String[] args){
Cat cat=new Cat();
cat.setActor(new Mouse());
cat.cry(); //参与者是老鼠,猫大叫时老鼠开始逃跑
cat.setActor(new Master());
cat.cry(); //参与者是主人,猫大叫时主人被猫惊醒
}
小新提醒:
JAVA面向对象编程最大的好处就是实现了接口和实现的分离,只要你明确定义了接口,可以去单独开发它的各个实现类,你需要哪个实现类的对象,就把哪个实现类的对象设置进来就可以轻松的更换系统的实现了。