/*
否则找成员位置,如果有就使用。
否则找父亲成员位置,如果有就使用。
否则找父亲的父亲...如果有就使用。
否则就报错。
如果子类要想使用父类的东西,可以通过一个关键字去调用。这个关键字类似于this的功能。
叫:super。你可以理解为父亲的对象引用。因为super代表的其实是父类的存储空间。
*/
class Animal {
int num = 10;
}
class Dog extends Animal {
int num = 20;
int num2 = 40;
public void show() {
int num = 30;
System.out.println(num); //打印局部范围
System.out.println(this.num); //打印成员范围
System.out.println(super.num); //打印父亲成员范围
System.out.println(num2);
System.out.println(this.num2);
//System.out.println(super.num2); //父亲没有,所以报错
}
}
class AnimalTest {
public static void main(String[] args) {
Dog d = new Dog();
d.show();
}
子父间的成员变量关系:就近原则
首先在局部范围找,如果有就使用。否则找成员位置,如果有就使用。
否则找父亲成员位置,如果有就使用。
否则找父亲的父亲...如果有就使用。
否则就报错。
如果子类要想使用父类的东西,可以通过一个关键字去调用。这个关键字类似于this的功能。
叫:super。你可以理解为父亲的对象引用。因为super代表的其实是父类的存储空间。
*/
class Animal {
int num = 10;
}
class Dog extends Animal {
int num = 20;
int num2 = 40;
public void show() {
int num = 30;
System.out.println(num); //打印局部范围
System.out.println(this.num); //打印成员范围
System.out.println(super.num); //打印父亲成员范围
System.out.println(num2);
System.out.println(this.num2);
//System.out.println(super.num2); //父亲没有,所以报错
}
}
class AnimalTest {
public static void main(String[] args) {
Dog d = new Dog();
d.show();
}
}