区分子类方法中重名的三种变量与继承中成员方法的访问特点

成员变量重名
如果子类父类中出现重名的成员变量,这时的访问是有影响的。代码如下:
 
 
class Fu {
// Fu中的成员变量。
int num = 5;
}
class Zi extends Fu {
// Zi中的成员变量
int num = 6;
public void show() {
// 访问父类中的num
System.out.println("Fu num=" + num);
// 访问子类中的num
System.out.println("Zi num=" + num);
}
}
class ExtendsDemo03 {
public static void main(String[] args) {
// 创建子类对象
Zi z = new Zi();
// 调用子类中的show方法
z.show();
}
}
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰
父类成员变量,类似于之前学过的 this 。
使用格式:
super.父类成员变量名
小贴士:Fu 类中的成员变量是非私有的,子类中可以直接访问。若Fu 类中的成员变量私有了,子类是不能
直接访问的。通常编码时,我们遵循封装的原则,使用private修饰成员变量,那么如何访问父类的私有成员
变量呢?对!可以在父类中提供公共的getXxx方法和setXxx方法。
/*
f*
在父子类的继承关系当中,创建子类对象,访问成员方法的规则:
创建的对象是谁,就优先用谁,如果没有则向上找。
注意事项;
无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。


public class demo01 {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.methoZi();
        zi.methodFu();

        zi.method();
    }
}

 

posted @ 2022-07-01 12:17  zj勇敢飞,xx永相随  阅读(31)  评论(0编辑  收藏  举报