一直以为缺省的权限修饰符就是 protected,结果今天吃大亏了。
本来创建了一个 abstract class package.a.Transaction 类,当中写了一个抽象方法:
结果编写 class package.b.TransactionImp extends package.a.Transaction 时发现即使实现了 execute() 方法,仍然不能编译。捣鼓了好久,甚至把 IDEA 下面的 cache 目录都删除了,仍然没有用。最后才想起来是不是没有加上 protected 修饰符。结果加上去就好了:
真是学东西太马虎了。缺省修饰符其实是 package-friendly。另外,IDEA 给出的错误消息不正确,我还以为是 IDEA 出了问题。
本来创建了一个 abstract class package.a.Transaction 类,当中写了一个抽象方法:
java 代码
- abstract void execute() throws Exception;
结果编写 class package.b.TransactionImp extends package.a.Transaction 时发现即使实现了 execute() 方法,仍然不能编译。捣鼓了好久,甚至把 IDEA 下面的 cache 目录都删除了,仍然没有用。最后才想起来是不是没有加上 protected 修饰符。结果加上去就好了:
java 代码
- protected abstract void execute() throws Exception;
真是学东西太马虎了。缺省修饰符其实是 package-friendly。另外,IDEA 给出的错误消息不正确,我还以为是 IDEA 出了问题。