黑马程序员技术交流社区

标题: 装饰和接口的区别 [打印本页]

作者: 程序爱好者    时间: 2014-4-20 23:10
标题: 装饰和接口的区别
今天看 了一下io流中的装饰,把装饰和之前接口的都搞乱了,他们的区别是什么
作者: ノtrack    时间: 2014-4-20 23:27
装饰是对原有的功能加强,  接口是扩展功能
作者: tjsyj    时间: 2014-4-20 23:31
装饰模式是已有功能的增强,比如 代码
已知类:
Person()
{
  public void chifan()
   {
    }
}
增强类:
superPerson()
{
   private Person p;
   superPerson(Person p)
   {
     this.p=p;
    }
   
    public void superchifan()
    {
      p.chifan();
      .........
    {
}
抽象类是当多个类中出现相同功能,但是功能主体不同,这时候可以进行向上抽取,只抽取功能定义,而不抽取功能主体。
而接口 是一种特殊的抽象类,和抽象类不同的是,它里面的方法都是抽象的。
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类是一个抽象类。
接口可以被类多实现。
比如  大学生和中学生中可以抽象出 的共同点是 都有学习的功能 ,但是学习的内容不一样。

作者: kuroro自走核炮    时间: 2014-4-21 10:04
装饰就是原来的类通过外面穿衣服的方式增强了,你可以想象是奥特曼变身。
接口是对接外部提供的东西来扩展自身的功能,你可以想象是机器人合体。




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