Java用继承体现多态性(成员变量)

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

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

对比一下:

成员变量:编译看左边,运行还看左边。
成员方法:编译看左边,运行看右边。

1.创建一个父类

public class Fu /*extends Object*/ {

    int num = 10;

    public void showNum() {
        System.out.println(num);
    }
    }

2.创建一个子类

public class Zi extends Fu {

    int num = 20;

    int age = 16;

    @Override
    public void showNum() {
        System.out.println(num);
    }
    }

3.使用

    public static void main(String[] args) {
        // 使用多态的写法,父类引用指向子类对象
        Fu obj = new Zi();
        System.out.println(obj.num); // 父:10。编译看左边,运行还看左边。
//        System.out.println(obj.age); // 错误写法!
        System.out.println("=============");

        // 子类没有覆盖重写,就是父:10
        // 子类如果覆盖重写,就是子:20
        obj.showNum();
    }
发布了28 篇原创文章 · 获赞 1 · 访问量 463

猜你喜欢

转载自blog.csdn.net/qq_45145809/article/details/105095103