在多台中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败;
在运行时期:参阅对象所属的类中是否有调用的方法;
简单总结就是:成员函数在多台调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类);
在多态中,静态成员函数的特点:
无论编译和运行,都参考左边;
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"); } }
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有