. class Test1Demo {
. public
static
void main(String[] args) {
. Fu f = new Zi();
. //f.method(); //编译看左边,运行看右边,左边没有method方法,报错,
. f.show();//编译看左边,运行看右边,父类有show,编译没问题,输出Zishow,如果Zi类没有show方法,则运行时发现子类没有去重写,则直接调用的是父类show输出FU show,子类把fu类show方法继承下来了
. }
. }
. 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 A {
. public
void show() {
. show2(); // 调用了show2
. }
. public
void show2() {
. System.out.println("我");
. }
. }
. class B extends A { //子类继承了A
. public
void show2() {
. System.out.println("爱");
. }
. }
. class C extends B {
. public
void show() {
. super.show();
. }
. public
void show2() {
. System.out.println("你");
. }
. }
. public
class Test2DuoTai {
. public
static
void main(String[] args) {
. A a = new B();//编译看做左边,b中没有show,但是继承了A类的show方法.
. a.show();//爱
. //父类show方法调用show2,子类中有show2,则show2是子类的show2.就相当于把这个方法写到B类中看
. B b = new C();//编译看做左边,b中没有show,但是继承了A类的show方法.
.. b.show();//你
//运行看的是右边,子类show,super.show(),调用父类show方法,调用show2,调用子类show2
. }
. }