A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Mr.Cai 中级黑马   /  2015-11-30 22:52  /  536 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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.         其他(静态方法,成员变量)都是编译看左边(父类),运行看左边(父类)。
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马