拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
実行シーケンスは次のとおりです:
A.i と B.i はどちらもパッケージプライベートであり、B.i には A.i のオーバーライドがありません。この 2 つは独立していますの;A.i 和 B.i 都是package-private的, B.i 没有Override A.i, 这两者是独立的;
A.i
B.i
A.setI 和 B.setI 都是public, B.setI Override A.setI, A在构造时调用的是B.setI;
A.setI
B.setI
B在构造函数之外的成员初始化是在super()之后执行的, B.i先是在super里被B.setI设为60, 再被B的成员初始化设为10;
super()
删除B中的int i = 10;之后, 如果A和B处于同一个package, B.setI访问的就是A.i
int i = 10;
親クラスにすでに存在するメンバーをサブクラスで宣言した場合、エラーは発生しませんか?少なくとも警告であるべきです。
質問が悪すぎるとしか言えません。実際の開発ではこのように書くことは不可能です。自分で穴を掘ることになります。
7.101. Aの構築メソッドに進み、オブジェクトの空のパラメータの構築を完了します。 2.int I=73.setI(20) はサブクラスの setI() を呼び出します。このとき、サブクラスの I は 60 ですが、親クラスの I は 7 のままです。 this.i. この時点では、親クラスでは 7 です (注: 変数は実際の呼び出し元に依存します。これは現在の親クラスです。メソッドはオーバーライドされ、サブクラスを呼び出します)。 int I=10 は元の 60 をカバーします。 6、これを出力します。この時点では .i は 10 です。 60.60
3. サブクラスの setI を呼び出して親クラスに代入します。このとき、親クラスは に変わります。 60.5. 現時点ではカバレッジはありません。this.i はデフォルトで親クラスから継承した 60. を呼び出します。 Degbugの重要性について...
実行シーケンスは次のとおりです:
リーリーA.i
とB.i
はどちらもパッケージプライベートであり、B.i
にはA.i
のオーバーライドがありません。この 2 つは独立していますの;A.i
和B.i
都是package-private的,B.i
没有OverrideA.i
, 这两者是独立的;A.setI
和B.setI
都是public,B.setI
OverrideA.setI
, A在构造时调用的是B.setI
;B在构造函数之外的成员初始化是在
super()
之后执行的,B.i
先是在super里被B.setI
设为60, 再被B的成员初始化设为10;删除B中的
🎜int i = 10;
之后, 如果A和B处于同一个package,B.setI
访问的就是A.i
A.setI
とB.setI
は両方とも public、B.setI
はA.setI
をオーバーライドします、A構築中に呼び出されるのはB.setI
;🎜 🎜🎜コンストラクター外の B メンバーの初期化はsuper()
の後に実行され、B.i
は最初に super 内のB.setI
を 60 に設定し、次にB のメンバーによって 10 に初期化されました;🎜 🎜B のint i = 10;
を削除した後、A と B が同じパッケージ内にある場合、B.setI
はA.i
にアクセスします。 ()、A.iは60に設定されていますが、どちらのプリントも60です🎜。親クラスにすでに存在するメンバーをサブクラスで宣言した場合、エラーは発生しませんか?少なくとも警告であるべきです。
質問が悪すぎるとしか言えません。実際の開発ではこのように書くことは不可能です。自分で穴を掘ることになります。
7.10
注: サブクラスの I を削除すると、デフォルトで親クラスの I が呼び出されます1. Aの構築メソッドに進み、オブジェクトの空のパラメータの構築を完了します。
2.int I=7
3.setI(20) はサブクラスの setI() を呼び出します。このとき、サブクラスの I は 60 ですが、親クラスの I は 7 のままです。 this.i. この時点では、親クラスでは 7 です (注: 変数は実際の呼び出し元に依存します。これは現在の親クラスです。メソッドはオーバーライドされ、サブクラスを呼び出します)。 int I=10 は元の 60 をカバーします。
6、これを出力します。この時点では .i は 10 です。
60.60
3. サブクラスの setI を呼び出して親クラスに代入します。このとき、親クラスは に変わります。 60.
5. 現時点ではカバレッジはありません。this.i はデフォルトで親クラスから継承した 60.
を呼び出します。
Degbugの重要性について...