public class Test2DuoTai {
public static void main(String[] args) {
A a = new B(); //父类引用指向子类对象
a.show();//爱
B b = new C();
b.show();//你
}
}
/*
*.A a = new B();
a.show();
*步骤:1.b继承a,所以,编译看左边(a),运行看右边(b)
2.左边:a中:public void show() {
show2();
}
右边:子类中没有show方法,因此继承了父类的show方法,执行show2方法
3.执行的show2方法,应该是子类的show2方法(运行看右边)
4.结果:“爱”
*B b = new C();
b.show();
*步骤:
1.c继承b,所以,编译看左边(b),运行看右边c)
2.左边:b当中没有show方法,但是,b继承了a中的show方法。
右边:编译看右边:super.show();指向父类的show方法(也可以说是a中的show方法)
3.执行的show2方法,应该是子类的show2方法(运行看右边)
4.4.结果:“爱”
*/
class A {
public void show() {
show2();
}
public void show2() {
System.out.println("我");
}
}
class B extends A { //b继承a
public void show2() { //调用父类的show
System.out.println("爱");
}
}
class C extends B { //c继承b
public void show() {
super.show();
}
public void show2() { //调用子类的show2
System.out.println("你");
}
}