java - 当在子类中声明一个父类中存在的变量后,自动调用的父类构造函数不起作用。
高洛峰
高洛峰 2017-04-18 10:46:33
0
3
567
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(3)
左手右手慢动作

Jujukan pelaksanaan adalah seperti berikut:

1. super();
1.1. super.i = 7;
1.2. this.setI(20) => this.i = 60;
1.3. System.out.println("i from a is " + super.i) => 7;
2. this();
2.1. this.i = 10;
2.2. System.out.println("i from b is " + this.i) => 10;
  • A.i dan B.i kedua-duanya adalah pakej-peribadi, B.i tidak mempunyai Override A.i, kedua-duanya adalah bebas

  • A.setI dan B.setI kedua-duanya awam, B.setI Override A.setI, yang dipanggil A semasa pembinaan ialah B.setI;

  • Pemulaan ahli B di luar pembina dilaksanakan selepas super() B.i mula-mula ditetapkan kepada 60 oleh B.setI dalam super, dan kemudian ditetapkan kepada 10 oleh pemula ahli B;


Selepas memadamkan int i = 10; dalam B, jika A dan B berada dalam pakej yang sama, B.setI mengakses A.i, dan tidak akan ada perubahan selepas A.i ditetapkan kepada 60 semasa super(), dan ia akan menjadi dicetak dua kali. Kedua-duanya adalah 60

黄舟

Jika saya mengisytiharkan ahli dalam subkelas yang telah wujud dalam kelas induk, adakah tiada ralat? Ia sekurang-kurangnya menjadi amaran.

Saya hanya boleh mengatakan bahawa soalan itu terlalu jahat. Tidak mustahil untuk menulis seperti ini dalam perkembangan sebenar Anda akan menggali lubang untuk diri sendiri.

Ty80

7.10
1. Pergi ke kaedah pembinaan A dan lengkapkan pembinaan parameter kosong Objek.
2.int I=7
3.setI(20) memanggil setI() subkelas Pada masa ini, I subkelas ialah 60, dan I kelas induk masih 7.
4.Cetak .i ini ialah 7 dalam kelas induk pada masa ini; (nota: pembolehubah bergantung pada pemanggil sebenar, ini ialah kelas induk semasa; kaedah ini dipanggil subkelas kerana ia telah diganti)
5.int I=10 menimpa 60 yang asal.
6, cetak ini.i Kali ini 10.

60.60
Nota: Jika anda memadamkan I subkelas, I kelas induk dipanggil secara lalai
3. Panggil setI subkelas dan berikannya kepada kelas induk. kelas induk berubah kepada 60.
5. Tiada penggantian pada masa ini, ini.i lalai untuk memanggil kelas yang saya warisi daripada kelas induk, iaitu 60.

Mengenai kepentingan Degbug...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan