page contents

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

轩辕小不懂 发布于 2021-08-05 15:36
阅读 482
收藏 0
分类:Java开发
1590
Nen
Nen
- 程序员

意思是:当父类变量引用子类对象时(Fu f = new Zi();

),在这个引用变量f指向的对象中,他的成员变量和静态方法与父类是一致的,他的非静态方法,在编译时是与父类一致的,运行时却与子类一致(发生了复写)。

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 DuoTaiDemo4 {

public static void main(String[] args) {
Fu f = new Zi();
System.out.println(f.num);//与父类一致
f.method4();//与父类一致
f.method3();//编译时与父类一致,运行时与子类一致
Zi z = new Zi();
System.out.println(z.num);
z.method4();
z.method3();
}
}

请先 登录 后评论