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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘劲松 中级黑马   /  2013-8-12 11:26  /  1868 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘劲松 于 2013-8-26 08:53 编辑

很简单的一个例子,初学者看看。大神直接飘过~~
  1. import java.lang.*
  2. public class OverrideDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6. A2 obj1=new A2();
  7. obj1.showVar1();
  8. System.out.println("obj1.var1="+obj1.var1);
  9. System.out.println("=================");
  10. obj2.showVar1();
  11. System.out.println("obj2.var1="+obj2.var1);
  12. System.out.println("=================");
  13. A2 obj3=new B2();
  14. obj3.showVar1();
  15. System.out.println("obj3.var1="+obj3.var1);
  16. }
  17. }
  18. class A2
  19. {
  20. int var1=100;
  21. protected void showVar1()
  22. {
  23. System.out.println("A2定义的showVar1() var1="+var1);
  24. }
  25. }

  26. class B2 extends A2
  27. {
  28. double var1=1111.111;
  29. public void showVar1()
  30. {
  31. System.out.println("B2定义的showVar1() var1="+var1);
  32. }
  33. }
复制代码
执行结果如下:
A2定义的showVar1() var1=100
obj1.var1=100
=================
B2定义的showVar1() var1=1111.111
obj2.var1=1111.111
=================
B2定义的showVar1() var1=1111.111
obj3.var1=100   

----------------------------------------------------------------------------
很简单的一个例子,多态中重载的不同,记住成员变量和成员函数重载的不同规则。理解也很容易,
A2 obj3=new B2();
obj3.showVar1();

这种向上转型的方式,开辟的对象是父类类型的对象。
总结为:成员函数在多态调用时,编译看左边(引用型变量所属类中有调用方法,编译通过,没有,编译失败),运行看右边。
成员变量的话,无论编译,运行都看左边。






评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马