Java多态初体验
来源:互联网 发布:恒大金服app网络不给力 编辑:程序博客网 时间:2024/05/22 06:11
本文转自 http://devx.javaeye.com/blog/60005
本文面向Java初学者,我们在教材上经常会看到Java是多态的,可是一般的教科书只停留在理论上,很少有实际操作。现在把多态个概念用代码简单描述一下,由于本人水平有限,所以难免有不足之处。
首先我们有这样几个类,电脑,个人电脑,笔记本电脑。
java 代码
- class Computer{
- public void turnOn(){
- }
- }
现在有了电脑这个类,那么个人PC,笔记本都是继承他。
java 代码
- 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()方法,而在父类中这个方法是空的,子类中各自有不同的实现,到这里可能还不太明显。如果有另外一个方法,要接受这些类作为参数,就像这样
java 代码
- class Test{
- public void go(Computer computer){
- computer.turnOn();
- }
- }
这个方法接收的是基类参数,当然我们是可以把子类传递给方法的,也应该这么做。
java 代码
- go(new PC());
- go(new NB());
这样他就会去调用具体子类的turnOn()方法,所以这两次调用的输出是不一样的.如果不用基类作为参数,我们想调用每个子类的turnOn()方法,那么就要些两个方法体一样的go()而接收不同的参数的重载。
java 代码
- public void go(PC computer){
- computer.turnOn();
- }
- public void go(NB computer){
- computer.turnOn();
- }
这样些也是正确的,但是这样会产生很多重复代码,而且也不易维护,当然这只是多态中最基本的一个部分,Java多态机制还有很多特性,关于这些建议大家看看 java编程思想(think in java)这本书,里面讲的很详细,这里只是很简单的描述了一下,还望个各位高手不要见笑。
- Java多态初体验
- Java多态初体验
- java体验
- java之初体验
- java初体验
- java初体验
- java 初体验
- Java Builder 初体验
- java 与 php 体验
- Java初体验
- 一次Java出错体验
- 体验java可视化开发
- Java nio 初体验
- Swing-初体验-java
- java的体验!
- java的体验!
- java上机初体验
- Java工程师面试体验
- 百度谴责阿里巴巴集团在三鹿事件中故意传谣
- .NET 3.0 框架介绍
- first article
- PHP+APACHE+MYSQL
- 你真的理解了继承和多态吗?
- Java多态初体验
- hibernate小问题:setString的定义
- MD5加密
- Hibernate 复习笔记一
- 窗口类、窗口类对象与窗口三者之间关系
- 每天进步一点点——记学struts+spring+hibernate的感想,献给所有正在学习软件开发的朋友们
- 探索Win32系统之窗口类(Window Classes in Win32)
- Groovy Tip 24 魔幻数组 四
- 查找同色围棋子的广度和深度遍历方法