组合、继承和代理三者的定义

组合、继承和代理三者的定义:

  • 组合:在新类中new 另外一个类的对象,以添加该对象的特性。
  • 继承:从基类继承得到子类,获得基类的特性。
  • 代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性。

    使用场合:

    组合:

    各部件之间没什么关系,只需要组合即可。like组装电脑,需要new CPU(),new RAM(),new Disk()……

      演示代码如下:
      

public class Computer {
    public Computer() {
        CPU cpu=new CPU();
        RAM ram=new RAM();
        Disk disk=new Disk();
    }
}
class CPU{    }
class RAM{    }
class Disk{    }

继承:

子类需要具有父类的功能,各子类之间有所差异。like Shape类作为基类,子类有Rectangle,CirCle,Triangle……代码不写了,大家都经常用。

代理:

飞机控制类,我不想暴露太多飞机控制的功能,只需部分前进左右转的控制(而不需要暴露发射导弹功能)。通过在代理类中new一个飞机控制对象,然后在方法中添加飞机控制类的各个需要暴露的功能。

演示代码如下:

public class PlaneDelegation{   
    private PlaneControl planeControl;    //private外部不可访问
    /*
    * 飞行员权限代理类,普通飞行员不可以开火
    */
    PlaneDelegation(){
        planeControl=new PlaneControl();
    }
    public void speed(){
        planeControl.speed();
    }
    public void left(){
        planeControl.left();
    }
    public void right(){
        planeControl.right();
    }
}

final class PlaneControl {//final表示不可继承,控制器都能继承那还得了。。
    protected void speed() {}
    protected void fire() {}
    protected void left() {}
    protected void right() {}
} 

本文原址:http://www.linuxidc.com/Linux/2015-04/116277.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值