interface PCI
{
public abstract void open();
public abstract void close();
}
class MainBoard
{
public void run()
{
System.out.println("MainBoard run");
}
public void usePCI(PCI p) //PCI p = new NetCard();
{
p.open();
p.close();
}
}
class NetCard implements PCI
{
public void open()
{
System.out.println("NetCard open");
}
public void close()
{
System.out.println("NetCard close");
}
}
class duotaiDemo2
{
public static void main(String[] args)
{
MainBoard md = new MainBoard();
md.run();
md.usePCI(new NetCard());
}
}
interface PCI
{
public abstract void open();
public abstract void close();
}
class MainBoard
{
public void run()
{
System.out.println("MainBoard run");
}
/*
public void usePCI(PCI p) //PCI p = new NetCard();
{
p.open();
p.close();
}
*/
public void useNetCard(NetCard nt)
{
nt.open();
nt.close();
}
}
class NetCard implements PCI
{
public void open()
{
System.out.println("NetCard open");
}
public void close()
{
System.out.println("NetCard close");
}
}
class duotaiDemo2
{
public static void main(String[] args)
{
MainBoard md = new MainBoard();
md.run();
//md.usePCI(new NetCard());
md.useNetCard(new NetCard());
}
}
上面的两个代码段都可以实现相同的两个功能。但是第一个因为使用了多态,使得它的扩展性得到很大的提升,如果在定义一个声卡功能的话,直接调用一个声卡功能,不会在MainBoard类中写代码。如下
md.usePCI(new soundCard());