多态-成员变量访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态-成员变量访问相关的知识,希望对你有一定的参考价值。

成员变量
编译看左边(父类),运行看左边(父类)
成员方法
编译看左边(父类),运行看右边(子类)。动态绑定
静态方法
编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)
只有非静态的成员方法,编译看左边,运行看右边

class Demo2_Polymorphic {
    public static void main(String[] args) {
        /*Father f = new Son();                 //父类引用指向子类对象
        System.out.println(f.num);

        Son s = new Son();
        System.out.println(s.num);*/

        Father f = new Son();
        //f.print();
        f.method();                         //相当于是Father.method()
    }
}
/*
成员变量
编译看左边(父类),运行看左边(父类)
成员方法
编译看左边(父类),运行看右边(子类)。动态绑定
静态方法
编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)
只有非静态的成员方法,编译看左边,运行看右边 
*/
class Father {
    int num = 10;
    public void print() {
        System.out.println("father");
    }

    public static void method() {
        System.out.println("father static method");
    }
}

class Son extends Father {
    int num = 20;

    public void print() {
        System.out.println("son");
    }

    public static void method() {
        System.out.println("son static method");
    }
}

以上是关于多态-成员变量访问的主要内容,如果未能解决你的问题,请参考以下文章

多态-成员变量访问

java:多态

多态1

封装,继承,多态,接口

Java中多态

面向对象三大特征--多态