Java仕様では、デフォルトのアクセス権を持つクラスでコンストラクタをパブリックアクセスできるようになっていますが、パッケージの外部では参照できないため、クラスよりも広いアクセスレベルを持つJavaコンストラクタ
答えて
なぜpublic
コンストラクタを使用できるのかを質問している場合:ベースクラスを拡張すると、明示的に(または暗黙的に)呼び出すことができるからです。
はい、ただし、異なるパッケージからクラスconnotを拡張する場合は、publicコンストラクターを使用することはありません。 –
答えをありがとう、@ user439407が状況を説明するまで私はそれを理解できませんでした。 –
私はこのコメントを作りたかったが、ないコードタグがコメントで許可されていないので、.... CristopheDs上のあなたのコメントに関しては
は答える:
package bob;
class MySuperHiddenClass {
public MySuperHiddenClass() {
System.out.println("bob");
}
}
そして
package bob;
public class MyPublicClass extends MySuperHiddenClass {
}
MyPublicClassで宣言されたコンストラクタはありませんが、どのパッケージからでも新しいMyPublicClassを呼び出すことができます。
MySuperHiddenClassのコンストラクタがpublicでない場合でも、任意のパッケージから新しいMyPublicClassを呼び出すことができます。私はこれがどのように質問に答えるかは分かりません。 – Pablo
あなたは100%正しいです、私は私の答えを撤回します。 – user439407
クラスの可視性によって、外部の世界がクラスのインスタンスを作成する方法が決まります。したがって、パッケージプライベートクラスは、宣言されているパッケージ内でのみインスタンス化できます。メソッド可視性(コンストラクタを含む)は、既にインスタンス化されたインスタンスがそのクラス定義の外部でどのように使用されるかを決定します。
プライベートクラス/保護されたコンストラクタを使用してパッケージプライベートクラスを宣言した場合、同じパッケージ内の別のクラスからそのインスタンスをどのようにインスタンス化しますか?
2つのもの: class visibility - インスタンスを定義しているパッケージの外でどのように作成するかを指定します。 メソッドの可視性(コンストラクタを含む) - パッケージの可視性に関係なく、メンバへのアクセスがどのように制御されるかを決定します。
- 1. デフォルトのコンストラクタを持たないJavaクラス
- 2. 親よりも広いul
- 3. 2つのアクセスレベルを持つログインシステム
- 4. コンストラクタのパラメータは、私はこのコンストラクタを持つクラスを持つオブジェクト
- 5. Javaクラスとコンストラクタ
- 6. クラス図でアクセスレベルを表示
- 7. ドロップダウンのコンテンツがドロップダウンよりも広い
- 8. 専用コンストラクタを持つJava Spring Bean
- 9. 継承を持つコンストラクタでのリフレクション(Java)
- 10. パスは、私は、このようなクラスを持つコンストラクタ
- 11. Javaクラスとメソッドのアクセスレベルを分析するツールはありますか?
- 12. Railsのモデルで2つの 'アクセスレベル'を持つには?
- 13. ChartJS:カテゴリより幅の広い軸の目盛りを持つ棒グラフ
- 14. Java Reflectionクラスの型を持つgetDeclaredMethod()クラス
- 15. C#新しい配列。コンストラクタを持つクラス
- 16. コンストラクタは、私は私のクラスでは2つのコンストラクタ持っているのpython
- 17. 2つのクラスを持つJavaコード
- 18. Tkinterのテキストウィジェットは、グリッドを持つ他のどのウィジェットよりも幅が広いです。
- 19. 基底クラスを継承するコンストラクタを持つ2つのabstactクラス
- 20. Java抽象クラス、抽象コンストラクタ
- 21. 引数を持つコンストラクタを持つ抽象クラスをテストします。
- 22. Javaクラスにコンストラクタがないとどうなりますか?
- 23. コンストラクタを持つ2つのクラスは、互いに参照するようになっていますか?
- 24. 私はAsyncTaskを拡張するクラスを持つコンストラクタ
- 25. ユニット内部コンストラクタを持つクラスをテストする
- 26. 他のクラスの定数値を持つコンストラクタを呼び出す
- 27. コンストラクタの引数を持つ抽象クラスをテストする
- 28. 私は(もちろんのゲッターとセッターで)次のようになり、Javaクラス持つジェネリック
- 29. javaのlinkedlistクラスを持つカスタムノードクラス
- 30. 汎用コンストラクタを持つ汎用クラスですか?
コンストラクタがそのクラスよりも広いアクセス権を持つ理由は、この疑問がよく似ています。私はどのような答えがこれを説明しているのか分かりません。 – Pablo