多态中成员变量、成员方法的使用特点和多态的好处

多态中成员变量的使用特点

访问成员变量的两种方式:

1. 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。

2. 间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找。

public class Fu {
    int num = 10;
    public void showNum(){
        System.out.println(num);
    }
}
public class Zi extends Fu{
    int num = 20;
    @Override
    public void showNum() {
        System.out.println(num);
    }
}
复制代码
public class Demo01MultiField {
    public static void main(String[] args) {
        //使用多态的写法,父类引用指向子类对象
        Fu obj = new Zi();
        System.out.println(obj.num);
        System.out.println("==========");
        //子类没有覆盖重写,就是父
        //子类如果覆盖重写,就是子
        obj.showNum();
    }
}
复制代码

 

多态中成员方法的使用特点

在多态的代码当中,成员方法的访问规则是:

  看new的是谁,就优先用谁,没有则向上找。

>多态:编译看左边,运行看右边。

>成员变量:编译看左边,运行还看左边。

>成员方法:编译看左边,运行看右边。

复制代码
public class Fu {
    int num = 10;
    public void showNum(){
        System.out.println(num);
    }

    public void method(){
        System.out.println("父类方法");
    }

    public void methodFu(){
        System.out.println("父类的特有方法");
    }
}
复制代码
复制代码
public class Zi extends Fu{
    int num = 20;
    @Override
    public void showNum() {
        System.out.println(num);
    }

    @Override
    public void method(){
        System.out.println("子类方法");
    }

    public void methodZi(){
        System.out.println("子类的特有方法");
    }

}
复制代码
复制代码
public class Demo01MultiField {
    public static void main(String[] args) {
        //多态
        Fu obj = new Zi();
        //父类都有,优先用子
        obj.method();
        //子类没有,父类有,向上找到父类
        obj.methodFu();

    }
}
复制代码

多态的好处

无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化。

 

 

 

 

 

 

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