关于接口

1、接口的定义

如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。
接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。
接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的。

2、接口的特点

定义接口的关键字:interface。实现接口的关键字:implements。
    1)不能够被实例化
    2)接口中的方法自动设为public abstract类型
    3)接口中不能够出现方法体的实现
    4)接口中的成员变量全为静态常量,用public static final,不过一般不在接口中定义成员变量
    5)实现某个接口的类,必须实现其中所有的方法
    6)一个类可以实现多个接口
    7)接口可以继承接口,使用extends关键字

    8)一个类可以继承一个父类的同时,实现一个或者多个接口,extends关键字必须位于implements关键字之前

3、接口的作用

接口的最主要的作用是达到统一访问。在不同事物(类)中抽象出共同功能点(方法),形成一组公开的功能规则(接口)
来制约某些事物(类)的功能实现。换句话说:接口就是对类的功能(方法)抽象。

接口程序段实例:

interface PCI
{
   void start();
   void stop();
}

class NetWorkCard implements PCI
{
 public void start()
 {
  System.out.println("send");
 }
 public void stop()
 {
  System.out.println("stop");
 }
}

class SoundCard implements PCI
{
 public void start()
 {
  System.out.println("du..du");
 }
 public void stop()
 {
  System.out.println("sound stop");
 }
}

class MainBoard
{
 public void usePCICard(PCI p)
 {
  p.start();
  p.stop();
 }
}


class Assembler
{
 public static void main(String args[])
 {
  MainBoard mb = new MainBoard();
  NetWorkCard nc = new NetWorkCard();
  SoundCard sc = new SoundCard();
  mb.usePCICard(nc);
  mb.usePCICard(sc);
 mb.usePCICard(new PCI()
  {
   public void start()
   {
    System.out.println("I love you");
   }
   public void stop()
   {
    System.out.println("Me too");
   }
  });
 }
}

PS:关于上面的mb.usePCICard(new PCI()。。。这个方法,是采用匿名类来实现接口

 

posted @ 2012-10-31 09:33  笑rpp  阅读(229)  评论(0编辑  收藏  举报