黑马程序员技术交流社区

标题: 关于多态 [打印本页]

作者: xiaoxinxin003    时间: 2015-7-12 17:42
标题: 关于多态
多态中(父类引用指向子类对象)成员函数(非静态)的特点:
        (如果子类静态覆盖父类静态方法,运行时调用的还是父类中的静态方法)不常见但是要知道(与静态的加载方式有关)。
在编译时,参阅引用型变量所属的类中是否有调用的方法,如果有则编译通过,如果没有则编译失败,如代码中的方式2
因为父类中没有Method3方法,所以编译失败。
在运行时:参阅对象所属的类中是否有调用的方法。
总结:成员函数在多态中调用时,编译时期看左边(即父类(引用)中有没有调用的方法),
        运行看右边(即子类对象中是否有调用的方法)。
多态中成员变量的特点:无论编译还是运行,都是参阅的引用型变量所属的类(左边)。即父类和子类中出现重名变量时,
        在多态的情况下,调用的变量值是父类中的值,

  1. class Fu
  2. {
  3.         public void Method1(){
  4.                 System.out.println("method_1");
  5.         }
  6.         public void Method2(){
  7.                 System.out.println("method_2");
  8.         }
  9. }
  10. class Zi extends Fu
  11. {
  12.         public void Method1(){
  13.                 System.out.println("method_1");
  14.         }
  15.         public void Method3(){
  16.                 System.out.println("method_3");
  17.         }
  18. }
  19. class DuoTaiDemo5
  20. {
  21.         public static void main(String[] args){
  22.                 //方式2 多态
  23.                 Fu f = new Zi();
  24.                 f.Method1();
  25.                 f.Method2();
  26.                 //f.Method3();因为父类中没有这个方法。编译失败
  27.                 //方式1
  28. //                Zi z = new Zi();
  29. //                z.Method1();
  30. //                z.Method2();
  31. //                z.Method3();
  32.         }
  33. }
复制代码





作者: zhwfa1991    时间: 2015-7-12 18:21
这个知识点,昨天刚学习过
作者: 小虎199406    时间: 2015-7-12 18:30
加油   加油
作者: e275919713    时间: 2015-7-12 21:13
复习一遍
作者: fever_ai_my    时间: 2015-7-12 21:23
学习一下
作者: 拾起落叶    时间: 2015-7-12 21:47
也过来复习一下
作者: 扶摇丶    时间: 2015-7-12 22:00
复习一下
作者: 何鹏程    时间: 2015-7-12 22:13
好多知识点啊。




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