Abu*_*mad 2 java oop inheritance subclass superclass
在以下java代码中
public class Person {
int age = 18;
}
class Student extends Person {
public Student() {
this.age = 22;
}
public static void main(String[] args) {
Student student = new Student();
student.doSomthing();
}
void doSomthing() {
System.out.println(this.age);
System.out.println(super.age);// Here is something weird, at least for me till rightNow()
}
}
Run Code Online (Sandbox Code Playgroud)
为什么super.age值为22,与子类的年龄值相同,是不是应该是18;
任何帮助表示赞赏.
提前致谢.
年龄是超类中的一个领域.在子类的构造函数中,当你说this.age = 22时,你正在更新超类中的实例变量.
尝试以下...我没有一个方便的编译器,但我认为它可能会做你期望的.
public class Person {
int age = 18;
}
class Student extends Person {
int age; // Hides the super variable
public Student() {
this.age = 22;
}
public static void main(String[] args) {
Student student = new Student();
student.doSomthing();
}
void doSomthing() {
System.out.println(this.age);
System.out.println(super.age);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139 次 |
最近记录: |