浅论Java中接口的使用

发表于:2010-2-02 12:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
java

  接口申明必须有interface关键字和接口的名字,public指明任意类均可以使用这个接口,默认情况下,只有与该接口定义在同一个包中的类才可以访问这个接口。extends 与类申明中的extends 基本相同,不同的是一个接口可以有多个父接口,用逗号隔开。而一个类只能有一个父类。子接口继承接口中所有的常量和方法。在类的申明中用implements来表示一个类实现某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法(可以是空的实现但一定要实现),否则该类就是一个抽象类。一个类可以实现多个接口。接口的作用,一言以蔽之,就是标志类的类别(type of class)。把不同类型的类归于不同的接口,可以更好的管理他们。OO的精髓,我以为,是对对象的抽象,最能体现这一点的就是接口。

  接口不是类,尤其是绝对不能使用new 操作符实例化接口;

  Module md=new Module()//错误

  不过,虽然不能构造接口对象,但还是可以声明接口变量。

  Module md;

  接口变量必须指向一个实现了该接口的类的对象;

  x=new MotorModule();//只要实现了Module就对了

  可以用instanceof来检验对象是否实现了某个接口(只要它属于的类或者父类实现了某个接口都可以);

  if(anObject instanceof Module){...}

  接口在软件发布的时候是向用户公开的,用户可以通过调用实现接口的类的接口方法,而如果不实现接口用户是不能调用的。

  也就是我们常可以听到的服务提供商这样说:“如果你们的类遵循一个特定的接口,那么我们将执行这些服务。”

  java 接口的使用举例

  //以下程序说明 并不严谨,只是为了方便初学者初步的理解接口的应用
  interface Interface         //接口   {
  String ShowMessage(String MSG);  //接口方法,因为接口方法默认是public abstract 所以这里可以不用显示书写
  }
  class ClassItf implements Interface   //全部实现了接口interface类的方法;
  {
  public ClassItf()
  {
  //构造函数
  }
  public String ShowMessage(String MSG)  //实现接口方法ShowMessage()
  {
  System.out.print(MSG);
  return MSG;
  }
  }
  /*   usingItf 类调用了接口方法,来实施某一些功能,但是具体的操作有接口实现类来操作,
  将必要的数据通信给接口,实现了数据的通信;  这里如此说明并不严谨,只是便于初学者理解
  */
  class usingItf   //"驱动类"
  {
  public String getstring;
  public void usingItf(Interface inf,String MSG)  //使用了接口定义的方法 注意:使用了Interface 的引用 inf
  {
  getstring=inf.ShowMessage(MSG);
  }
  }
  public class Test      //Test函数
  {
  public static void main(String args[])
  {
  ClassItf newClassItf=new ClassItf();
  usingItf aa =new usingItf();
  aa.usingItf(newClassItf,"This is the firstpage!!!!"); // 注意这里传递的接口实现类的实例,还有参数 class usingItf
  }
  }

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号