メソッドをオーバーライドするとき、なぜアクセス数を増やすことはできても減らすことはできないのですか?
2023-08-20 21:51:43
質問
Java では、オーバーライドするメソッドのアクセス指定子は、オーバーライドするメソッドよりも多くのアクセスを許可することはできても、少ないアクセスを許可することはできないと指定されているのはなぜですか。たとえば、スーパークラスで保護されたインスタンスメソッドは、サブクラスでは公開にすることはできますが、非公開にすることはできません。
どのように解決するのですか?
これは OOP の基本原則です。子クラスは親クラスの本格的なインスタンスであり、そのため子クラスには 少なくとも同じ インターフェイスを提供しなければなりません。protected/public のものを見えにくくすると、この考えに違反することになり、子クラスが親クラスのインスタンスとして使用できなくなる可能性があります。
関連
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
無効な文字定数
-
Javaジェネリックを1つの記事で
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] List<Dog> は List<Animal> のサブクラスですか?Java のジェネリックはなぜ暗黙のうちに多相性にならないのですか?
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】サブクラスはプライベートフィールドを継承するのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
強制型変換について
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
無効なメソッド宣言
-
シェルコマンドやスクリプトのJavaコール
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。