博客信息

面向对象之多态(多态中成员的特点)

发布时间:『 2019-05-25 02:47』  博客类别:java基础  阅读(569)

在多台中成员函数的特点:

在编译时期:参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败;

在运行时期:参阅对象所属的类中是否有调用的方法;

简单总结就是:成员函数在多台调用时,编译看左边,运行看右边。

 

在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类);

 

在多态中,静态成员函数的特点:

无论编译和运行,都参考左边;


package com.javaxl.object;

/**
 * @author 小李飞刀
 * @site www.javaxl.com
 * @company
 * @create  2019-05-24 11:40
 */
public class ObjectDemo1 {
    public static void main(String[] args) {
        Zi z1 = new Zi();
        z1.method_1();//zi_method_1
        z1.method_2();//zi_method_2
        z1.method_3();//zi_method_3

        System.out.println("--------------------------------------------------");
        Fu f1 = new Zi();
        f1.method_1();//zi_method_1
        f1.method_2();//fu_method_2 静态方法调用不会被子类所覆写
//        f1.method_3();父类引用所属类没有对应方法

        System.out.println("--------------------------------------------------");
        Zi z2 = new Zi();
        System.out.println(z2.x);//7
        System.out.println(z2.y);//8

        System.out.println("--------------------------------------------------");
        Fu f2 = new Zi();
        System.out.println(f2.x);//5
        System.out.println(f2.y);//6    静态成员变量不会被子类所覆写
    }
}

class Fu{
    int x = 5;
    static int y = 6;
    public void method_1(){
        System.out.println("fu_method_1");
    }
    public static void method_2(){
        System.out.println("fu_method_2");
    }
}

class Zi extends Fu{
    int x = 7;
    static int y = 8;
    public void method_1(){
        System.out.println("zi_method_1");
    }
    public static void method_2(){
        System.out.println("zi_method_2");
    }
    public void method_3(){
        System.out.println("zi_method_3");
    }
}




关键字:     Java基础       面向对象       多态  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有