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,继承的方法是子类会覆盖掉父类相同的方法,但是这属性为什么没覆盖
親クラスの属性はプライベートであり、サブクラスも親クラスのメソッドをオーバーライドするときに、親クラスのメソッドを呼び出さないため、親クラスの属性値は空になります。
それらはすべてプライベートです!
同じメンバー変数は上書きされません。http://blog.csdn.net/iwaich/article/details/9126661
変数はオーバーライドされません
リーリー
スーパーキーワードを使用する場合は、セッターメソッド本体を投稿することをお勧めします。
Student でメソッド a() をプログラムし、super を使用して Person クラスでそのメソッドを呼び出し、次に main メソッドで a() メソッドを呼び出すことができます。
この問題は解決されました。
タイトルの説明にいくつかの誤りがあることを指摘します:
実際のところ、私の理解によれば、「親クラスの同名の属性に対するサブクラスの属性の影響」と「親クラスの同名のメソッドに対するサブクラスのメソッドの影響」は、同じ。
実際、いわゆるサブクラスは、同じ名前の親クラスのメソッドを「オーバーライド」しますが、実際にはそれをカバーしておらず、親クラスのメソッドはまだ存在しています。デバッグベースではそれを確認できないだけです。