日期:2014-05-20  浏览次数:20793 次

接口?
//PCI为接口,不能有对象,怎能用PCI实例作为参数?
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( "stop   du... ");
  }
}

class   MainBoardCard{
      public   void   usePCICard(PCI   p){   //PCI为接口,不能有对象,怎能用PCI实例作为参数?
              p.start();
              p.stop();      
      }
}

class   Assem   {
  public   static   void   main(String   []   args){
      MainBoardCard   mc=new   MainBoardCard();
      NetWorkCard   nc=new   NetWorkCard();
      SoundCard   sc=new   SoundCard();
        mc.usePCICard(nc);
      mc.usePCICard(sc);
  }  
}

------解决方案--------------------
class SoundCard implements PCI{
...
}

NetWorkCard nc=new NetWorkCard();

mc.usePCICard(nc);

这样就可以了。
网卡实现了PCI接口,网卡的实例就是PCI的实例了。
------解决方案--------------------
其实你还不是太了解接口类跟实现类的区别吧

用接口有很大的好处,就象你上面的例子一样,只有一个东西实现了PCI接口,就能插到主板的PCI插槽上面。

为什么不用申明哪个PCI插槽应该插什么东西呢?
这就是说明接口编程的好处,否则你的主板那就要带了N多的插槽(特定网卡插槽--其他的不能插这儿 /声卡插槽--其他的不能插这儿)

这就是面向接口编程、编写对象的设计理念
------解决方案--------------------
class SoundCard implements PCI
SoundCard就是PCI实例.
在看张孝祥的书吧?
------解决方案--------------------
我这个问题上也点问题~现在懂了