博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java入门之多态
阅读量:6239 次
发布时间:2019-06-22

本文共 1131 字,大约阅读时间需要 3 分钟。

  hot3.png

本文面向Java初学者,我们在教材上经常会看到Java是多态的,可是一般的教科书只停留在理论上,很少有实际操作。现在把多态个概念用代码简单描述一下,由于本人水平有限,所以难免有不足之处。

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

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)这本书,里面讲的很详细,这里只是很简单的描述了一下,还望个各位高手不要见笑。

java草堂

转载于:https://my.oschina.net/itgo/blog/30550

你可能感兴趣的文章
vim的日常操作方法
查看>>
Windows7系统安装Oracle数据库图文教程详解
查看>>
我的友情链接
查看>>
文本统计命令——wc
查看>>
mina2.0
查看>>
JEESZ简介
查看>>
Linux中通过/proc/stat等文件计算Cpu使用率(一)
查看>>
Centos6.5下利用rsyslog+loganalyzer+mysql部署日志服务器
查看>>
Linux查看硬件信息的一些命令
查看>>
基于VMware vSphere 5.0的服务器虚拟化实践(2)
查看>>
MySQL学习笔记_6_SQL语言的设计与编写(下)
查看>>
linux下挂载(mount)光盘镜像文件、移动硬盘
查看>>
线性链表的c语言实现
查看>>
关于dns服务工作的原理,和配置的细节理解。
查看>>
JavaScript Cookie
查看>>
MVC+Nhibernate+spring.net(三)
查看>>
【图的最短路径】迪杰斯特拉算法求图的最短路径
查看>>
计划人生与程序设计--面对变化
查看>>
JAVA 添加、修改和删除PDF书签
查看>>
How to describe the numerical values?
查看>>