不是覆盖......你可以把父类的变量继承过来,而子类中的变量是属于子类自己的变量,变量没有覆盖这种说法,子类的成员变量与父类的成员变量同名而已
子类调用父类的变量,要加super如下代码:
- <P>class Father3 {
- int x = 10;
- final double MY_PI = 3.14;
-
- }</P>
- <P>class Son3 extends Father3 {
- int x = 20;</P>
- <P>double MY_PI = 6.28;//这是子类自己的变量与父类无关
- public void show() {
-
- System.out.println(x);
- System.out.println(MY_PI);//这个是子类的MY_PI,前面有个省略的this
- System.out.println(super.MY_PI);//这里输出的才是父类的MY_PI
- // System.out.println(super.MY_PI++);//这里会报错因为加了super表示的是父类的MY_PI,因为是final修饰,不可以改变值,自增改变了他的值所以会报错
- }</P>
- <P>}</P>
复制代码 super也可以忽略不写比如子类中没有x,这个变量当你打印输出x时就是父类的变量了,不用再加super了
|