接口

  在面向对象中,java只能单根,没有c++的多继承。虽然这样会减少错误的发生,但是在继承上也导致了很多功能实现很麻烦,接口的出现就很好的解决了这个问题,而且更方便。

  在接口中全部都是抽象方法,不能实例化。类不能实例化,只能实现接口定义的方法。

  接口的特点  接口可以有任意数量的方法

         接口不能被实例化

         接口不能包含构造器

         接口的方法都是抽象的

           接口中不能包含实例成员变量

           接口不能被继承,只能被实现

        一个接口可以继承多个接口

  接口是由interface关键字定义,只能拥有公共的静态常量和抽象方法,没有构造方法,能够多重实现.使用关键字implements来实现接口

  接口不是类,虽然接口类似于一个类,但是概念不同。类描述了对象的属性和行为,而接口包含了一个类需要实现的行为。

  接口的优点最大的作用就是扩展性,还可以将类和实现分离,规范子类。

例:

   比如说有3个翻译员,A会翻译英语和法语,B个会只会英语,C英语、法语、日语都会。如果我们把翻译的3个语言的行为都定义为父类的话,子类翻译员都继承父类的行为,虽然我们可以不重写,但是这在理论上来说是不合理的。在这种情况下就可以使用接口来实现了。

  创建一个父类翻译官Y,和3个接口,分别是翻译英语、法语和日语,还有3个子类分别代表3个翻译人员,如果是A的话就直接实现英语和法语的接口,B的话实现英语接口,C3个都实现。

  接口的定义方法 public interface 接口名()。例如翻译英语接口      public interface IEnglish{     //可以在接口名前加个I,表示是个接口

                                public void english();    //这里public可以省略,默认也是公共的

                                }

  

  接口的实现方法  public class 类名 extends 父类名 implements 接口名

    例如B翻译员的类   public class B extends Y implements French(){      //如果要实现多个接口,只需要在接口名后面加逗号再写上接口名

                public void french(){            //实现接口

                  System.out.println("我会翻译法语");

                }

             }

posted @ 2014-04-22 00:18  大石碎胸口  阅读(166)  评论(0编辑  收藏  举报