黑马程序员技术交流社区

标题: 白箱复用和黑箱复用 [打印本页]

作者: 暮色醉玄阳    时间: 2014-10-27 14:05
标题: 白箱复用和黑箱复用
  1.白箱复用:又叫继承复用,子类会继承父类所有的东西,
        从某种程度上说白箱复用破坏了封装。是一种 is a 的关系。
    例:class Liucy{
          public void teachCpp(){System.out.println("Teach Cpp");}
          public void chimogu(){ }
        }
       class Huxy extends Liucy{}

    2、黑箱复用:又叫组合复用,是一种 has a 的关系。
    例:class Liucy{
          public void teachCpp(){System.out.println("Teach Cpp");}
          public void chimogu(){    }
        }
       class Huxy {
          private Liucy liucy = new Liucy();
          public void teachCpp(){liucy.teachCpp();}
        }
    原则:组合复用取代继承复用原则。
         使我们可以有机会选择该复用的功能。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2