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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dubei1993 中级黑马   /  2016-6-17 12:39  /  468 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类的子类要么是抽象类,要么重写抽象类中所有的抽象方法.下面是我自己对装饰模式代码的改写.
//这就是装饰模式的抽象类.
public abstract class DecoratePhone implements Phone {
// public DecoratePhone() {
//
// }

public abstract void call();
}

//这是具体的彩铃装饰类
public class RingDecorate extends DecoratePhone {
private Phone p;
public RingDecorate(Phone p) {
  this.p = p;
}
public void call() {
  System.out.println("听彩铃");
  this.p.call();
}
}

我并没有方法重写,但是并没有报错,运行结果也是正确的.并且加override与不加运行结果都正确,why?

4 个回复

倒序浏览
963852741 来自手机 初级黑马 2016-6-17 13:54:01
沙发
你的概念清晰,but,你明明重写了call()方法啊,还有和加override没有关系,这个只是注释。
回复 使用道具 举报
963852741 发表于 2016-6-17 13:54
你的概念清晰,but,你明明重写了call()方法啊,还有和加override没有关系,这个只是注释。 ...

哈哈,明白了。多谢。我一直以为方法重写必须加override

点评

嗯,你是在自学吗  发表于 2016-6-17 14:06
回复 使用道具 举报
dubei1993 发表于 2016-6-17 14:00
哈哈,明白了。多谢。我一直以为方法重写必须加override

我是黑马下期就业班的。哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马