黑马程序员技术交流社区

标题: 哈尔滨校区学习之多态面试题 [打印本页]

作者: Mr.Cai    时间: 2015-11-30 22:52
标题: 哈尔滨校区学习之多态面试题
  1. class A {
  2.         public void show() {
  3.                 show2();
  4.         }
  5.         public void show2() {
  6.                 System.out.println("我");
  7.         }
  8. }
  9. class B extends A {
  10.         public void show() {
  11.                 show2();
  12.         }

  13.         public void show2() {
  14.                 System.out.println("爱");
  15.         }
  16. }
  17. class C extends B {
  18.         public void show() {
  19.                 super.show();        //在这里调用了父类的show()方法,这里调用的是show2()
  20.         }
  21.         public void show2() {
  22.                 System.out.println("你");
  23.         }
  24. }
  25. public class Test2DuoTai {
  26.         public static void main(String[] args) {
  27.                 A a = new B();           //多态
  28.                 a.show();                  //编译看左,运行看右。        打印 "爱"
  29.                
  30.                 B b = new C();          //多态
  31.                 b.show();            //编译看左,运行看右。打印 "你"
  32.         }
  33. }
  34.         总结:
  35.         只有非静态的方法,是编译看左边,运行看右边。原因是因为:方法有重写。
  36.         其他(静态方法,成员变量)都是编译看左边(父类),运行看左边(父类)。
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2