30

fooプライベート インスタンス変数を持つクラスがあるとしますbar

bazここで、別のクラス、 which を作成しましょうextends foo。にアクセサメソッドが定義されていない場合、非静的メソッドはの変数にbazアクセスできますか?foobarfoo

ちなみに、私はJavaで作業しています。

4

10 に答える 10

23

いいえ、そのためには使用する必要がありますprotected.

于 2009-05-04T23:42:56.390 に答える
6

このような質問については、次の Web サイトの表を参照してください: http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html

これらはサブクラスが親から継承し、したがって baz で見られる変数であるため、基本的に public または protected 変数を foo で宣言する必要があります。

于 2009-05-04T23:48:36.707 に答える
1

子クラスはプライベート メンバーにアクセスできません (これがプライベート アクセス制御の要点です)。

于 2009-05-04T23:43:05.703 に答える
1

... foo にアクセサメソッドが定義されていない場合は?

アクセサーが必要です。その上、継承に気をつけてください、その var は本当に親にあるべきですか? IS-A チェックを覚えておいてください。

于 2009-05-04T23:49:20.260 に答える
0

クラスのプライベート変数は、常にそのクラス内にスコープを持ちます。サブクラス間で共有する必要がある場合は、「保護されている」と宣言する必要があります

于 2017-04-09T19:22:08.880 に答える