- class A {
- void fun1() {
- System.out.println(fun2());
- }
- int fun2() {
- return 123;
- }
- }
- public class B extends A {
- int fun2() {
- return 456;
- }
- public static void main(String args[]) {
- B b = new B();
- /**
- * B继承了A,B也就继承了A中所有的方法
- * B调用方法时,会先找B中是否有这个方法,然后再去A中找
- * 因此此时b.fun1();调用的是B对象中的方法,结果456
- */
- b.fun1();
- /**
- * 父类A引用指向子类对象B
- * 子类B重写了A中的fun1(),
- * 典型的多态,所以结果依然是456
- */
- A a = b;
- a.fun1();
- }
- }
复制代码 |