区分子类方法中重名的三种变量与继承中成员方法的访问特点
作者:互联网
成员变量重名
如果子类父类中出现重名的成员变量,这时的访问是有影响的。代码如下:
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* 在父子类的继承关系当中,创建子类对象,访问成员方法的规则: 创建的对象是谁,就优先用谁,如果没有则向上找。 注意事项; 无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。 重写( Override) 概念::在继承关系当中,方法的名称一样,参数列表也—样。 重写(Override)。方法的名称一样,参数列表【也一样】。覆盖、覆写。重载(OverLoad):方法的名称一样,参数列表【不一样】。 方法的覆盖重写特点:创建的是子类对象,则优先用子类方法 */ public class demo01 { public static void main(String[] args) { Zi zi = new Zi(); zi.methoZi(); zi.methodFu(); zi.method(); } }
标签:变量,重名,子类,成员,num,三种,父类,方法,Zi 来源: https://www.cnblogs.com/x3449/p/16434163.html