私はクラスConstructorOwのクラスConstructorTwoを継承していますが、オブジェクトを作成していません(明示的には少なくとも明示的に)。では、なぜConstructorTwoクラスのコンストラクタはpublicでなければなりませんか?Javaがデフォルトのコンストラクタを使用してpublicクラスを継承しています
このエラーが発生します。ConstructorTwo()がConstructorTwoでパブリックではありません。 Javaは任意のコンストラクタを呼び出したときに、それはそれは、サブクラスのコンストラクタでのコードのいずれかを呼び出す前に、スーパークラスのコンストラクタを呼び出す必要があるため、それは公共のでなければならない理由がある
package one;
import two.ConstructorTwo;
public class ConstructorOne extends ConstructorTwo {
public static void main(String args[]) {
}
}
package two;
public class ConstructorTwo {
ConstructorTwo() {
super();
System.out.println("Default constructor in package TWO!");
}
}
コンパイルエラーが発生していると思われますか?あなたの質問にそれを含める価値はおそらくあります。 – khelwood
@khelwoodが含まれています。 –
エラーは自明ですが 'パッケージ外からはアクセスできません '。 [Javaのアクセス修飾子](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) – Guy