第七章 接口

接口的概念:它是一种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面向对象编程最大的好处就是实现了接口和实现的分离,只要你明确定义了接口,可以去单独开发它的各个实现类,你需要哪个实现类的对象,就把哪个实现类的对象设置进来就可以轻松的更换系统的实现了。

猜你喜欢

转载自blog.csdn.net/Yangxiaoyue222/article/details/80376751