問題タブ [protected]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
6651 参照

java - Java 保護されたアクセスが機能しない

Java には、次の 3 つのレベルのアクセスがあります。

  • 公開 - 世界に公開
  • プライベート - クラスのみに公開
  • 保護 - クラスとそのサブクラスに対してのみ開かれます (継承)。

では、なぜ Java コンパイラはこれを許可するのでしょうか?

TestBlah.java:

Blah.java:

Bloo.java:

0 投票する
3 に答える
2685 参照

javascript - Javascript を使用した Vista IE7 保護モードの検出

できればJavaScriptを使用して、ページ内でVista IE7保護モードを検出できるようにしたいと思います。私の考えは、保護モードに違反するアクションを実行して、それを公開することです。目標は、適切なサイト ヘルプ メッセージを IE7 Vista ユーザーに提供することです。

0 投票する
4 に答える
3640 参照

c# - 基本クラスのセッターまたはゲッターを使用するc#

サブクラスがこれらの変数にアクセスできるように、基本クラスのメンバー変数を保護に設定することをお勧めしますか? それとも、メンバー変数をプライベートに設定し、サブクラスがゲッターとセッターによって変数を取得または設定できるようにすることをお勧めしますか?

また、getter メソッドと setters メソッドの使用が推奨されている場合、保護された変数はいつ使用されますか?

0 投票する
8 に答える
40892 参照

c++ - C ++で実際にプライベートまたは保護された継承が必要なのはなぜですか?

C ++では、基本クラスからプライベート/保護を継承したい場合は考えられません。

本当に便利ですか?

0 投票する
2 に答える
2701 参照

variables - jmockitを使用してスーパークラスの保護された変数をモックする

スーパークラスで定義された保護された変数をモックできませんでした。スーパークラスで保護されたメソッドをモックできましたが、保護された変数をサブクラスにモックできませんでした。サブクラスのテストケースを書いています。それに対する解決策。返信してください。

ありがとうシャシ

0 投票する
3 に答える
18841 参照

java - java.lang.Object の保護されたメソッドは、サブクラスからどのように保護されていますか?

このキーワードprotectedは、同じパッケージおよびサブクラス内のクラスへのアクセスを許可します ( http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html )。

現在、すべてのクラスはjava.lang.Objectスーパークラス ( http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html ) として持っています。

java.lang.Objectしたがって、すべてのクラスがのメソッドにアクセスできると結論付けますprotected

次の例を見てください。

正常にgetOne()コンパイルされますgetTwo()が、

がコンパイルされない理由も、( s メンバーgetTwo()のアクセスに関して) との違いもわかりません。java.lang.ObjectgetOne()

0 投票する
15 に答える
61166 参照

c# - 保護されたインターフェイスメンバーを使用できないのはなぜですか?

インターフェイスで保護されたアクセスメンバーを宣言することに反対する議論は何ですか?たとえば、これは無効です。

この例では、インターフェースは、実装者が少なくとも継承者にインスタンスを提供するIOrangeことを保証します。実装者が望む場合は、スコープを完全に拡張できます。OrangePipspublic

インターフェイスのメンバーの目的は、継承者(サブクラス)にprotectedサポートコントラクトを提供することです。次に例を示します。

(確かに、これはsでは機能しませんstruct

インターフェイスのprivateまたは修飾子のケースの多くはわかりませんが、と修飾子の両方をサポートすることは完全に合理的であるように思われます。internalpublicprotected


メンバーをsから完全に分離することにより、sのprotectedメンバーの有用性を説明してみます。interfaceinterface

継承者のコントラクトを適用するための新しいC#キーワード、を想像してみましょうsupport。これにより、次のように宣言できます。

これにより、クラスを契約して、保護されたメンバーを継承者に提供できます。

protectedクラスは、そもそもメンバーを提供することによってこの契約をすでに暗示しているため、これは特に有用ではありません。

しかし、これを行うこともできます:

IOrangeSupportこれにより、実装するすべてのクラスに適用しIOrange、特定のメンバーを提供するように要求しprotectedます。これは、現在私たちができることではありません。

0 投票する
7 に答える
31604 参照

c# - このようにしないと、C# で保護されたメンバーにアクセスできないのはなぜですか?

このコード:

次のエラーが生成されます。

タイプ 'C' の修飾子を介して保護されたメンバー 'CF(D)' にアクセスできません。修飾子はタイプ 'D' (またはそれから派生したもの) でなければなりません

彼らはいったい何を考えていたのでしょうか。(そのルールを変更すると何かが壊れるでしょうか?) そして、F を公開する以外にそれを回避する方法はありますか?


編集:これがなぜなのか理由がわかりました(Gregに感謝します)が、合理性についてはまだ少し当惑しています。与えられた:

D が EF を呼び出せないのはなぜですか?


エラーメッセージは編集されているため、タイプミスがある可能性があります。

0 投票する
11 に答える
58905 参照

java - Javaリフレクション-アクセス保護フィールド

リフレクションによってオブジェクトから継承された保護フィールドにアクセスするにはどうすればよいですか?