我遇到了一个非常奇怪的行为,我在一个包中创建了 2 个类,比如 aa.bb
aa级代码
package aa.bb;
public abstract class aa {
abstract void deep();
}
bb类代码
public class bb extends aa{
@Override
void deep() {
}
}
现在我创建了另一个包 bbc.cc 并在这个包中创建了一个类。
cc类代码
package bbc.cc;
import aa.bb.bb;
public class cc extends bb {
}
现在 cc 类显示错误此类必须实现继承的抽象方法 aa.deep(),但不能覆盖它,因为它在 cc 中不可见。使类型抽象或使继承的方法可见
现在制作包 aa.bb 的 jar 文件并从源代码中删除 aa.bb 包。并在构建路径中添加了jar文件。在此之后,错误就像以前一样。现在我在 aa.bb 包中添加了 bb 类的源代码并解决了错误。我不知道这背后发生了什么。
这是项目的最终目录结构
请帮我理清概念