package 主要内容;
/**
* 需求:
*电脑的运行实例。
*电脑的运行由主板控制,假设主板只是提供电脑运行,但是没有上网,听歌等功能。
*而上网、听歌需要硬件的支持。而现在主板上没有网卡和声卡,这时可以定义一个规则,叫PCI,只要符合这个规则的网卡和声卡都可以在主板上使用,
*这样就降低了主板和网卡、声卡之间的耦合性。
*用程序体现。
*/
interface Pci// 接口PCI
{
public void open();
public void close();
}
class MainBoard
{
public void run()//电脑运行
{
System.out.println("mainboard run");
}
//使用扩展功能
public void usepci(Pci p)//Pci p=new NetCard();//接口型引用指向自己的子类对象
{
if(p!=null)
p.open();
p.close();
}
}
class NetCard implements Pci//网卡实现接口
{
public void open()
{
System.out.println("net open");
}
public void close()
{
System.out.println("net close");
}
}
class SoundCard implements Pci//声卡实现接口
{
public void open()
{
System.out.println("sound open");
}
public void close()
{
System.out.println("sound close");
}
}
public class 多态的主板示例
{
public static void main(String[] args)
{
MainBoard mb=new MainBoard(); //电脑运行
mb.run();
mb.usepci(new NetCard());//电脑上网
mb.usepci(new SoundCard());//电脑听歌
//mb.uesNetCard(new NetCard());
}
}
|
|