aa.bbなどのパッケージに2つのクラスを作成したという非常に奇妙な動作に直面しました
クラス aa のコード
package aa.bb;
public abstract class aa {
abstract void deep();
}
クラスbbのコード
public class bb extends aa{
@Override
void deep() {
}
}
ここで、bbc.cc という別のパッケージを作成し、このパッケージ内に 1 つのクラスを作成しました。
クラス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 クラスのソース コードを追加し、エラーを解決しました。この背後で何が起こっているのかわかりません。
これはプロジェクトの最終的なディレクトリ構造です
コンセプトを明確にするのを手伝ってください