A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序爱好者 中级黑马   /  2014-4-20 23:10  /  668 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看 了一下io流中的装饰,把装饰和之前接口的都搞乱了,他们的区别是什么

3 个回复

倒序浏览
装饰是对原有的功能加强,  接口是扩展功能
回复 使用道具 举报
装饰模式是已有功能的增强,比如 代码
已知类:
Person()
{
  public void chifan()
   {
    }
}
增强类:
superPerson()
{
   private Person p;
   superPerson(Person p)
   {
     this.p=p;
    }
   
    public void superchifan()
    {
      p.chifan();
      .........
    {
}
抽象类是当多个类中出现相同功能,但是功能主体不同,这时候可以进行向上抽取,只抽取功能定义,而不抽取功能主体。
而接口 是一种特殊的抽象类,和抽象类不同的是,它里面的方法都是抽象的。
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类是一个抽象类。
接口可以被类多实现。
比如  大学生和中学生中可以抽象出 的共同点是 都有学习的功能 ,但是学习的内容不一样。

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
装饰就是原来的类通过外面穿衣服的方式增强了,你可以想象是奥特曼变身。
接口是对接外部提供的东西来扩展自身的功能,你可以想象是机器人合体。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马