class Fu {
public void show() {
System.out.println("fu show");
}
}
class Zi extends Fu {
public void show() {
System.out.println("zi show");
}
public void method() {
System.out.println("zi method");
}
}
class Swap {
public static void main(String[] args) {
Fu f = new Zi();
//f.method(); //编译看左边,会报错
f.show(); //编译看左边,运行看右边,结果是zi show
}
}class A {
public void show() {
show2();
}
public void show2() {
System.out.println("我");
}
}
class B extends A {
public void show2() {
System.out.println("爱");
}
}
class C extends B {
public void show() {
super.show();
}
public void show2() {
System.out.println("你");
}
}
public class Swap {
public static void main(String[] args) {
A a = new B(); //父类的引用指向子类的对象
//父类中有show()编译通过,子类中没有show(),调用父类的show()
//父类中的show()调用show2(),如果有一样的话,调用子类的方法
a.show(); //爱
B b = new C(); //父类的引用指向子类的对象
//父类中有继承的show()方法,所以编译不报错,
//调用B父类的show()方法,方法体内调用的是show2()方法
//父类中的show()调用show2(),如果有一样的话,调用子类的方法
b.show(); //你
}
}| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |