多态(三)

class Fu
{
    int num = 5;
    void method1()
    {
        System.out.println("fu method_1");
    }
    void method2()
    {
        System.out.println("fu method_2");
    }
    static void method4()
    {
        System.out.println("fu method_4");
    }
}


class Zi extends Fu
{
    int num = 8;
    void method1()
    {
        System.out.println("zi method_1");
    }
    void method3()
    {
        System.out.println("zi method_3");
    }

    static void method4()
    {
        System.out.println("zi method_4");
    }
}

Fu f = new Zi();
System.out.println(f.num);//打印5
f.method4();//打印zi method_4

 

总结:

1.在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败
在运行时期:参阅对象所属的类中是否有调用的方法
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边

2.在多态中,成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)

3.在多态中,静态成员函数的特点:无论编译和运行,都参考做左边

原文地址:https://www.cnblogs.com/lzxl/p/4175624.html