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