5.3 成员变量的隐藏
- 参考书籍:Java面向对象程序设计(第二版)--耿祥义 张跃平编著
1:成员变量的隐藏
子类从父类继承的成员变量,只要子类声明的成员变量和父类中的成员变量同名,子类就隐藏了继承的成员变量。
注意:
1.子类对象和子类声明的方法操作与父类同名的成员变量是指子类重新声明定义的这个成员变量(就是操作子类声明的而不是父类的那个了)
2.子类对象可以调用从父类继承的方法操作隐藏的成员变量
People类
package packlx2;
public class People {
public double x; //x为浮点型
public void setX(double x){
this.x=x;
}
public double getDoubleX(){
return x;
}
}
Student类
package packlx2;
class Student extends People{
int x; //重新定义成员变量x,x是整型
public int getX(){
//x=20.56 //在这里是非法的,因为子类的x已经是int型,不是double型
return x;
}
}
主类
package packlx2;
public class Lianxi2 {
public static void main(String args[]){
Student stu=new Student();
stu.x=98; //合法,子类对象的x是int型
//stu.x=98.98; //不合法,子类对象的x是int型
stu.setX(98.98); //合法,子类对象调用继承的方法操作隐藏的double型变量x,把98.98设置进去
double m=stu.getDoubleX(); //子类对象调用继承的方法操作隐藏的double型变量x,获得x的值赋给m
System.out.println("m="+m);
}
}