快速业务通道

初学Java语言之多态初体验 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

初学Java语言之多态初体验

时间:2010-12-30 赛迪 fen

首先我们有这样几个类,电脑,个人电脑,笔记本电脑。

class Computer{   public void turnOn(){   } }

现在有了电脑这个类,那么个人PC,笔记本都是继承他。

class PC extends Computer{   public void turnOn(){     System.out.println("PC has turn on");   } } class NB extends Computer{   public void turnOn(){     System.out.println("NB has turn on");   } }

我们看到,每个类都有一个 turnOn()方法,而在父类中这个方法是空的,子类中各自有不同的实现,到这里可能还不太明显。如果有另外一个方法,要接受这些类作为参数,就像这样

class Test{   public void go(Computer computer){      computer.turnOn();   } }

这个方法接收的是基类参数,当然我们是可以把子类传递给方法的,也应该这么做

go(new PC()); go(new NB());

这样他就会去调用具体子类的turnOn()方法,所以这两次调用的输出是不一样的.如果不用基类作为参数,我们想调用每个子类的turnOn()方法,那么就要些两个方法体一样的go()而接收不同的参数的重载。

public void go(PC computer){      computer.turnOn();   } public void go(NB computer){      computer.turnOn();   }

这样些也是正确的,但是这样会产生很多重复代码,而且也不易维护,当然这只是多态中最基本的一个部分,Java多态机制还有很多特性,关于这些建议大家看看 java编程思想(think in java)这本书,里面讲的很详细,这里只是很简单的描述了一下,还望个各位高手不要见笑。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号