java 子类继承 父类, 但子类中 包含和父类相同 属性 ,给子类赋值之后,父类的相同的属性值还是空的。
类定义如下:
public class Person {
private String name;
private String age;
// ignore getter and setter
}
public class Student extends Person {
private String name;
private String score;
// ignore getter and setter
}
public static void main(String[] args){
Student stu = new Student();
stu.setAge("12");
stu.setName("test");
}
debug看到
父类(Person)的name属性值是null,继承的方法是子类会覆盖掉父类相同的方法,但是这属性为什么没覆盖
Atribut kelas induk adalah peribadi, dan subkelas juga mengatasi kaedah kelas induk Apabila mengatasi kaedah, ia tidak memanggil kaedah kelas induk, jadi nilai atribut kelas induk kosong. .
Semuanya tertutup!
Pembolehubah ahli yang sama tidak akan ditimpa, http://blog.csdn.net/iwaich/article/details/9126661
Pembolehubah tidak ditindih
Adalah disyorkan untuk menyiarkan badan kaedah penetap Jika kata kunci super digunakan, adalah lebih baik untuk membincangkan isu ini
Anda boleh memprogramkan kaedah a() dalam Pelajar, gunakan super untuk memanggil kaedah dalam kelas Orang, dan kemudian memanggil kaedah a() dalam kaedah utama Ia sepatutnya boleh dilaksanakan
Isu ini telah diselesaikan.
Saya hanya menunjukkan beberapa ketidaktepatan dalam penerangan tajuk:
Sebenarnya, mengikut pemahaman saya: "Kesan atribut subkelas pada atribut nama yang sama kelas induk" dan "kesan kaedah subkelas pada kaedah nama yang sama kelas induk" ialah sama.
Malah, subkelas yang dipanggil "mengatasi" kaedah kelas induk dengan nama yang sama sebenarnya tidak meliputinya, kaedah kelas induk masih ada. Cuma anda tidak dapat melihatnya dalam asas nyahpepijat.