继承中成员变量的访问特点和成员方法的访问特点

继承中成员变量的访问特点

在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访间有两种方式:

直接通过子类对象访问成员变量:

  等号左边是谁,就优先用谁,没有则向上找。

间接通过成员方法访问成员变量:

  R该方法属于谁,就优先用谁,没有则向上找。

public class Fu {
    int numFu = 10;
    int num = 100;
    public void meFu(){
        System.out.println(num);
    }
}
public class Zi extends Fu{
    int numZi = 20;
    int num = 200;
    public void meZi(){
        System.out.println(num);
    }
}
复制代码
public class Tests {
    public static void main(String[] args) {
        Fu fu = new Fu();
        //只能使用父类的东西,没有任何子类的内容
        System.out.println(fu.numFu);
        //
        Zi zi = new Zi();
        System.out.println(zi.numFu);
        System.out.println(zi.numZi);
        System.out.println("================");
        System.out.println(zi.num);
        System.out.println("================");
        //这个方法是子类的,优先用子类的,没有再向上找
        zi.meZi();
        //这个方法是在父类中定义的
        zi.meFu();
    }
}
复制代码

 

 成员方法的访问特点

在父类的继承关系当中,创建子类对象,访问成员方法发规则;

  创建的对象是谁,就优先用谁,如果没有则向上找。

注意事项:

  无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。

复制代码
public class Fu {
    public void meFu(){
        System.out.println("父类执行");
    }

    public void met(){
        System.out.println("父类重名执行");
    }
}

public class Zi extends Fu{
    public void meZi(){
        System.out.println("子类执行");
    }

    public void met(){
        System.out.println("子类重名执行");
    }
}

public class Tests {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.meFu();
        zi.meZi();
        //创建的是new了子类的对象,所以优先用子类方法
        zi.met();
    }
}
复制代码

 

posted @   魔光领域  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示