Saat menggunakan metode konstruktor subkelas untuk membuat objek subkelas, tidak hanya variabel anggota yang dideklarasikan dalam subkelas yang dialokasikan memori, tetapi juga variabel anggota kelas induk diberi ruang memori, tetapi hanya bagian yang diwarisi oleh subkelas. subkelas dialokasikan. Variabel anggota berfungsi sebagai variabel yang ditugaskan ke objek subkelas.
Artinya, meskipun variabel anggota pribadi di kelas induk telah mengalokasikan ruang memori, mereka tidak akan digunakan sebagai variabel objek subkelas, jika subkelas dan kelas induk tidak berada dalam paket yang sama, meskipun ramah variabel anggota kelas induk telah mengalokasikan ruang memori, tetapi tidak sebagai variabel objek subkelas.
Pada titik ini, kita kurang lebih merasa bahwa sebagian memori sepertinya terbuang sia-sia ketika subkelas membuat objek. Hal ini karena ketika suatu objek dibuat dengan subkelas, variabel anggota kelas induk juga dialokasikan ruang memori, namun hanya sebagian saja yang digunakan sebagai variabel yang ditugaskan ke objek subkelas. Misalnya: meskipun variabel anggota privat di kelas induk telah mengalokasikan ruang memori, variabel tersebut tidak digunakan sebagai variabel objek subkelas. Tentu saja, variabel tersebut bukan variabel objek kelas induk, karena kita tidak menggunakan induknya kelas untuk membuat objek apa pun. Namun, kita harus mencatat bahwa masih ada beberapa metode di subkelas yang diwarisi dari kelas induk, namun metode ini dapat beroperasi pada variabel yang tidak diwarisi tersebut.
Misalnya: objek subkelas ChinaPeople memanggil metode yang diwarisi untuk mengoperasikan variabel yang tidak diwarisi oleh subkelas tetapi telah mengalokasikan ruang memori.
classPeople{privateintaverHeight=168;publicintgetAverHeight(){returnaverHeight;}}classChinaPeopleextendsPeople{intheight;publicvoidsetHeight(inth){//height=h+averHeight;//Ilegal, subkelas tidak mewarisi averHeightheight=h;}publicintgetHeight(){returnheight ; }}publicclassMainpublicstaticvoidmain(Stringargs[]){ChinaPeoplezhangSan=newChinaPeople();System.out.println(nilai averageHeight yang tidak diwarisi oleh objek subkelas adalah: +zhangSan.getAverHeight());zhangSan.setHeight(180);System .out .println(Nilai tinggi variabel instan objek subkelas adalah: +zhangSan.getHeight());}}
Hasil yang berjalan adalah sebagai berikut:
Nilai rata-rataHeight yang tidak diwarisi oleh objek subkelas adalah: 168. Nilai variabel instan tinggi objek subkelas adalah: 180.