首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

接口?解决思路

2012-01-19 
接口?//PCI为接口,不能有对象,怎能用PCI实例作为参数?interfacePCI{voidstart()voidstop()}classNetWork

接口?
//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实例.
在看张孝祥的书吧?
[解决办法]
我这个问题上也点问题~现在懂了

热点排行