多态和接口实例

/**
* 需求:
* 电脑运行实例
* 电脑运行基于主板
* */
public class DuoTaiDemo6 {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    MainBoard mb = new MainBoard();
    mb.run();
    mb.usePCI(null); //java.lang.NullPointerException 空指针异常
    mb.usePCI(new NetCard());
    mb.usePCI(new SongCard());
    /*mb.run();
    mb.useNetCard(new NetCard());*/
}

}
interface PCI{//主板上的统一接口
public void open();
public void close();
}
class MainBoard {//主板上链接PCI接口
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{//复写PCI内的接口方法就行

public void open(){
    System.out.println("netCard open");
}
public void close(){
    System.out.println("netCard close");
}

}
class SongCard implements PCI{//大大提高扩展性 只要复写PCI接口中的方法即可

public void open(){
    System.out.println("SongCard open");
}
public void close(){
    System.out.println("SongCard close");
}

}
/*class MainBoard{
public void run(){
System.out.println(“MainBoard run”);
}
public void useNetCard(NetCard c){
c.open();
c.close();//把网卡嵌在主板上
}
}
class NetCard{

public void open(){
    System.out.println("netCard open");
}
public void close(){
    System.out.println("netCard close");
}

}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值