欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对于多态的理解

程序员文章站 2022-05-06 17:51:44
...

多态的一些口诀

成员变量,静态方法看左边;
非静态方法:编译看左边,运行看右边。

class Fu {

 intnum = 5;

static void method4() {

 System.out.println("fu method_4");

 }

void method3() {

 System.out.println("fu method_3");

 }

}

class Zi extends Fu {

 intnum = 8;

static void method4() {

 System.out.println("zi method_4");

 }

void method3() {

 System.out.println("zi method_3");

 }

}

class demo{

 public static void main(String[] args) {

Fu f = new Zi();

 System.out.println(f.num);//与父类一致

 f.method4();//与父类一致

 f.method3();//编译时与父类一致,运行时与子类一致

  Ziz = new Zi();

 System.out.println(z.num);

 z.method4();

 z.method3();

 }

}

输出结果:

5

fu method_4

zi method_3

8

zi method_4

zi method_3

从第一个输出能看出,Fu f = new Zi();,访问的是成员变量,所以看左边,也就是 f 访问自己的成员变量,但访问静态方法,还是f 访问自己的静态方法,而当运行普通方法时,运行则看右边,就是zi 来运行它自己的方法。其实挺好理解的