JAVA中关于继承和隐藏的一个另类问题。

来源:互联网 发布:软件代理商的盈利模式 编辑:程序博客网 时间:2024/06/05 05:27
成员变量的隐藏:
如果在子类中对从父类继承来的成员变量进行重新定义,即出现了子类变量对父类变量的隐藏。所谓隐藏是指子类拥有两个相同名字的变量,一个是继承自父类,另一个是由自己定义的。当子类执行它自己定义的方法时,如果操作该变量,所操作的是它自己定义的变量,而把继承自父类的变量“隐藏”起来。当子类执行从父类继承的操作时,如果操作该变量,所操作的是继承自父类的成员变量。
举例:
class SuperClass{
int x;
……
void setX( ){
x = 0;
}
……
}
class SubClass extends SuperClass{
int x; //hide x in SuperClass
……
void setX( ){ //overload method setX( ) in SuperClass
x = 5;
}
……
}
这个例子中,SubClass是SuperClass的一个子类。其中声明了一个和父类SuperClass同名的变量x,并定义了与之相同的方法setX, 这时在子类SubClass中,父类的成员变量x被隐藏 ,父类的方法setX被重载。于是子类对象所使用的变量x为子类中定义的x,子类对象调用的方法setX( )为子类中所实现的方法。 
原创粉丝点击