package com.dreamy.day03;
/**
* @author dreamy
* 需求:
* 电脑运行实例
* 电脑运行基于主板
* 用接口和多态实现程序的可扩展性
*/
abstract interface PCI{
public abstract void open();
public abstract void close();
}
class MainBoard{
public void run() {
System.out.println("mainboard run...");
}
public void userPCI(PCI p) {//PCI p=new NetCard//接口型引用指向自己的子类对象--多态的应用
if(p!=null) {
p.open();
p.close();
}
}
}
public class DuoTai02 {
/**
* @param args
*/
public static void main(String[] args) {
MainBoard mb=new MainBoard();
mb.run();
mb.userPCI(null);
mb.userPCI(new NetCard());
mb.userPCI(new SoundCard());
}
}
class NetCard implements PCI{
@Override
public void open() {
System.out.println("netcard open");
}
@Override
public void close() {
System.out.println("netcard close");
}
}
class SoundCard implements PCI{
@Override
public void open() {
System.out.println("soundcard open");
}
@Override
public void close() {
System.out.println("soundcard close");
}
}