在面向对象继承问题中,子类和父类都会有其成员变量,那么在访问类中成员变量时,我们该如何进行理解呢?
分为俩种情况:
(1)子类中成员变量和父类中成员变量的名称不相同;
理解方法:我们在访问中,直接访问其名称即可,因为编译器会根据你访问的名称进行匹配,匹配到相应的成员变量,如果没有匹配到,则会自动报错;
(2)子类中成员变量和父类中成员变量的名称相同;
在子类成员方法中访问一个变量的查找顺序:
理解方法:1.在子类方法的局部范围能进行匹配,匹配到就进行访问;没有就进行下一步骤
2.在子类的成员范围内进行匹配,匹配到就进行访问;没有就进行下一步骤
3.在父类的成员范围内进行匹配,匹配到就进行访问;没有就报错
class Father{
public int num=10;
}
class Son extends Father{
public int num=20;
public int num2=30;
public void show(){
System.out.println(num); //输出结果20
System.out.println(num2); //输出结果30
}
}
class TestDemo{
public static void main(String[]args){
//创建对象
Son s=new Son();
s.show();
}
}