黑马程序员技术交流社区

标题: 多态学习个人见解点滴 [打印本页]

作者: samove    时间: 2015-7-5 08:21
标题: 多态学习个人见解点滴
本帖最后由 samove 于 2015-7-5 08:26 编辑
  1. <p><img alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=80463&size=300x300&key=51abfa7cfdcc5ff2&nocache=yes&type=fixnone" border="0" aid="attachimg_80463"></p><p>class Fu
  2. {
  3.         public Fu(){}
  4.         
  5.         public void show()
  6.         {
  7.                 System.out.println("Fu-----执行");
  8.         }
  9.         
  10. }

  11. class Zi extends Fu
  12. {
  13.         public Zi(){}
  14. /*
  15.         public void show()
  16.         {
  17.                 System.out.println("Zi------执行");
  18.         }        
  19. */        
  20. }


  21. class Test
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 Fu f = new Zi();
  26.                 f.show();        
  27.         }
  28. }</p>
复制代码

多态前提条件:1、要有继承关系。2、要有方法重写。3、要有父类引用指向子类对象。
例如:Fu f = new Zi();
不过,我遇到一点有意思的东东。看上面代码 ↑ ↑ ↑ ↑ ↑
上面Zi中的重写show()被注释掉后,同样是多态,说明:重写只是多态的充分条件,而不是多态的必要条件。

下面是多态成员特点:
A:成员变量  编译看左边,运行看左边
B:成员方法  编译看左边,运行看右边
C:方法有重写,而变量没有

我个人觉得,应该都看左边,因为,f 毕竟是Fu类对象,只是,成员方法,不能只看左边,还要看看是否有被子类重写,如果有被重写,看重写。

顺便分享一张桌面壁纸。


402724.jpg (167.66 KB, 下载次数: 21)

402724.jpg

作者: muzili    时间: 2015-7-5 09:01
谢谢楼主分享
作者: Miss.H    时间: 2015-7-5 09:09
进来瞅瞅,暖贴................尽管并不喜欢那张图片的配色
作者: 等你的季节-夏天    时间: 2015-7-5 10:14
谢谢分享
作者: hp_discuz    时间: 2015-7-5 22:31
顶!d=====( ̄▽ ̄*)b一个。




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