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