`
天之魔神
  • 浏览: 28625 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

Java多态初体验

    博客分类:
  • Java
阅读更多

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

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

java 代码
  1. class Computer{   
  2.        
  3.     public void turnOn(){   
  4.     }   
  5. }  

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

java 代码
  1. class PC extends Computer{   
  2.     public void turnOn(){   
  3.         System.out.println("PC has turn on");   
  4.     }   
  5. }   
  6.   
  7. class NB extends Computer{   
  8.     public void turnOn(){   
  9.         System.out.println("NB has turn on");   
  10.     }   
  11. }  

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

java 代码
  1. class Test{   
  2.     public void go(Computer computer){   
  3.          computer.turnOn();   
  4.     }   
  5. }  

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

java 代码
  1. go(new PC());   
  2. go(new NB());  

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

java 代码
  1. public void go(PC computer){      
  2.          computer.turnOn();      
  3.     }     
  4.   
  5. public void go(NB computer){      
  6.          computer.turnOn();      
  7.     }    

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

分享到:
评论

相关推荐

    计算机软件Java编程特点及其技术分析 (1).pdf

    Java从设计之初就考虑到了网络计算的需求,支持多种网络功能,包括网络编程、远程方法调用(RMI)等。这使得Java非常适合于开发复杂、多层的网络应用。 Java语言的解释性也是其技术特点之一。Java程序可以采用JIT...

    java入门.TXT

    Java在20世纪90年代末至21世纪初迅速崛起,成为企业和互联网应用开发的主要语言之一。 #### 二、Java与C/C++的关系 **1. Java与C/C++的联系:** - **语法相似性**:Java继承了C/C++的语法风格,使得熟悉这两种...

    西安交大李尊朝老师的Java语言程序设计.ppt

    6. **网络功能**:Java设计之初就考虑了网络应用,提供了丰富的网络编程API。 ### Java与C/C++的区别 1. **跨平台**:C/C++编译后的程序依赖于特定的硬件平台,而Java的字节码在JVM上运行,实现跨平台。 2. **指针*...

    python初体验_认识python_explainufu_python_

    "python初体验"的文件旨在引导你逐步了解并掌握Python的基本概念和使用方式。 首先,"认识python"是学习过程的第一步。Python的设计哲学强调代码的可读性和简洁的语法,它采用了缩进来表示代码块,这与许多其他编程...

    林信良java学习笔记

    《林信良Java学习笔记》是一本深受程序员喜爱的Java学习资源,尤其因其繁体字版,对于中文读者来说,提供了更为亲切的阅读体验。这本书深入浅出地讲解了Java编程语言的基础知识和高级特性,旨在帮助初学者快速掌握...

    java基础编程_04_24_015946.docx

    编写Java程序的初体验通常是创建一个简单的"Hello, World!"程序,这涉及到创建一个Java源文件(如HelloWorld.java),然后编译和运行。Java源代码由类定义组成,如class HelloWorld { ... },其中main方法是程序的...

    java基础开发文档

    学习Java的基础包括语法、类与对象、继承、多态、接口、异常处理、集合框架等。深入理解这些概念是成为一名合格Java开发者的基础。 2. **Java Web**: JavaWeb是Java在Web开发中的应用,包括Servlet、JSP、JSTL、...

    Java编程宝典(十年典藏版).明日科技 李忠尉 陈丹丹 张振坤编著.源代码(完整版)

    全书分4篇,共27章,其中第1篇为技能学习篇,主要包括java初体验、eclipse与netbeans、基本语法、控制流程语句、数组、类与对象、字符串、继承与多态、接口与抽象类、集合与异常处理、io流、tcp与udp技术、窗体程序...

    开题报告-基于Java的酒店客房管理系统的设计与实现.doc

    - **住房更换**:支持客户在入住期间更换房间,提供灵活的住宿体验。 2. **设计意义**: - 提升服务质量:系统能有效提升酒店的服务档次,提高客户满意度,增强酒店的市场竞争力。 - 优化管理效率:通过自动化...

    JAVA 2应用编程150例

    在Java 2应用编程的世界里,开发者们常常面临各种挑战,而解决这些问题的关键在于理解和掌握核心概念、设计模式以及最佳实践。...无论你是初入Java殿堂的新手,还是寻求提升的开发者,这个资源都将为你提供宝贵的指导。

    Python编程学习初体验.zip

    Python编程学习初体验 Python是一种高级、通用的编程语言,以其简洁、易读的语法而闻名,被广泛应用于数据科学、机器学习、网络开发、自动化脚本等多个领域。初学者在接触Python时,通常会对其丰富的标准库、强大的...

    java 2学习指南

    总的来说,"Java 2学习指南"涵盖了从入门到进阶的全方位Java知识,无论你是初入编程的新手还是寻求提升的开发者,都能从中受益。配合提供的"Java2 学习指南.pdf"和"中国IT认证实验室学习下载频道.txt"资源,你将得到...

    Java 7 A Beginner’s Tutorial, 3rd Edition.pdf

    #### 三、第一章:Java 初体验 - **你的第一个 Java 程序:** - 介绍如何编写并运行一个简单的 Java 应用程序。 - 解释了 `public class` 和 `main` 方法的重要性。 - **Java 代码规范:** - 强调了代码格式的...

    -Java程序设计完整版课件全套ppt教学教程最全整套电子教案电子讲义.ppt

    首先,Java是由詹姆斯·高斯林在Sun公司领导下开发的一种编程语言,被誉为"Java之父"的高斯林在1990年代初提出了Java的最初设计。Java的名字来源于印度尼西亚的一个咖啡岛屿,象征着带给用户如咖啡般的愉悦体验。 ...

    java课程设计车次查询系统

    1. **Java基础知识**:这个项目主要基于Java语言,涉及到Java面向对象编程的基本概念,如类、对象、封装、继承和多态。同时,可能会用到Java集合框架(如ArrayList或HashMap)来存储和操作数据。 2. **数据库设计**...

    JAVA教程集合汇总-从入门到入土【汇总多年-史上最详细】呕心沥血整理

    在学习Java之初,首先要掌握基础语法,包括变量、数据类型、运算符、流程控制(如if语句、switch、for、while循环)、方法定义与调用,以及面向对象的基本概念。这些构成了Java程序设计的基础,是后续深入学习的前提...

    JAVA案例开发集锦

    总之,这本Java案例开发集锦是提升Java技能的理想选择,无论你是初入编程的新手,还是寻求进阶的开发者,都能从中受益匪浅。通过实践案例,你将学会如何将Java语言应用于实际问题,成为一名更出色的Java开发者。

    基于Java的模仿的MSN聊天软件.zip

    MSN在20世纪90年代末到21世纪初是全球广泛使用的即时通讯工具,而这个项目则尝试复刻其核心功能,为用户带来类似体验。 【描述】:“基于Java的模仿的MSN聊天软件.zip”描述了这个项目的主要技术栈——Java。Java是...

    java 技术资料

    Java作为一种强大的面向对象编程语言,它在设计之初就吸收了C++语言的优点,并且摒弃了一些难以理解和容易出错的功能,例如多继承和指针操作。这些设计决策使得Java既具备了强大的功能又相对简单易学。 1. **面向...

Global site tag (gtag.js) - Google Analytics