`
027hpedu
  • 浏览: 5408 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

动态性语言在Java编程中的运用

 
阅读更多
多态在现实世界中比比皆是。从描述人的性格和行为的“多面人”、“多面手”,到具有综合功能的产品“三合一”、“四合一”,都指多态性特征。多态使我们的世界更绚丽多彩。计算机的应用应该是多态的典型实例。
  一、多态的概念 所谓多态是指根据引用对象类型的不同,当不同的引用对象调用同一个方法时,会产生不同的行为。举一个例子来说,例如一个软件公司的软件开发小组由项目经理、项目组长、软件开发工程师等人员组成,上班时只要发出开始工作的指令,那么项目经理就会去做有关项目整体设计和与客户沟通的工作,项目组成会负责检查模块代码的工作,软件开发工程师会负责代码编写的工作。只要项目组开始工作了,那么项目组中的每一个员工就都会完成自己的本职工作。这里项目经理、项目组长、软件开发工程师可以看作是一个个对象,发出开始工作的指令可以看作是一个方法的调用。

  从程序设计的角度来看,当项目经理、项目组长、软件开发工程师这些对象接收到开始工作这个方法调用的时候,不同的对象对这个方法调用会有不同的行为。方法的重载和方法的重写就是多态的两种表现形式。重载是相对于一个类中的方法而言,类中的这些方法需要有相同的方法名和不同的参数列表,它可以认为是单个类中多态性的一种表现。方法的重写是相对于继承中子类和父类之间的方法而言,子类可以重写父类中的方法,子类中方法的返回值类型、方法名、参数个数以及参数类型要与父类中继承的方法完全相同,这可以认为是子类和父类间多态性的一种表现。再例如,如果要计算几何物体表面积和体积。如何在程序中最有效地计算众多不同几何体的表面积computeArea()?其实这是解释多态性最经典的例子。计算表面积的方法,如computeArea(),包括其他类似的方法,如computeVolume(),draw(),等等,都可应用多态来解决。因为这些方法都可以针对不同的几何体,进行运算和操作。即:形态不一、方法相同、内容多样。

  二、多态的好处 由上面的举例,可以知道多态给我们带来了好处,可以归纳为以下几点:

  1.可替换性。多态对已存在的代码具有可替换性。

  2.可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。

  3.接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。

  4.灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。

  5.简化性。多态简化了对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。

  三、多态在软件开发中的应用多态是基于继承的。下面以一个软件开发项目的小组为例,来看一下在类的继承中如何实现多态。无论是项目经理、项目组长还是软件开发工程师,他们都是公司的员工,所以首先定义一个员工类Employee,作为他们的父类。在该类中定义一个构造方法和一个表示员工工作的方法work。该构造方法有一个String类型的参数表示员工的职位以区分项目组成员。

  下面来总结一下,在使用类的继承实现多态时有以下几个地方是需要注意的:在实现多态时,要通过父类的变量来完成对子类对象方法的调用。被调用的方法必须是父类中存在并且在子类中被重写的方法。父类变量可以引用子类的不同类型的对象,但不能用该变量访问子类中新添加的属性和方法。

  四、多态使Java编程语言的灵活性、可扩展性、代码的复用性得以实现。深入理解多态的概念,有助于正确使用多态,设计出更加高效、灵活、健壮的Java编程程序。
分享到:
评论

相关推荐

    java手册中英文java8,java9手册

    太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言” Java不同于一般的编译语言或解释型语言。它首先将源代码编译成...

    JAVA应用程序设计开发(Java语言是SUN公司开发的一种编程语言。)

    Java语言是SUN公司开发的一种编程语言。 1.1 Java语言产生和发展的背景  Java语言源于Oak语言,这是SUN公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式...

    非常详细的JAVA编程语言系统学习从基础到精通教程

    Java是一门面向对象的编程语言,不仅...Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

    Java语言编程基础完整全套教学课件详细版

    Java是一门面向对象的编程语言,不仅...Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

    Java程序设计基础:Java语言概述.pptx

    1995年5月,改名Java,开发Web应用程序。 1996年1月,Java的第一个开发包JDK1.0发布。 Java历史网站 Java语言特点 Java极其流行,其设计特性:“一次编译,到处运行”。 简单性(simple) 面向对象(object oriented...

    JAVA_API1.6文档(中文)

    java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供...

    Java编程开发培训 基础入门到精通

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。,因此Java语言具有功能强大和简单...

    Java编程开发培训视频教程(小白到大神)

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。,因此Java语言具有功能强大和简单...

    Java编程开发培训视频教程【从入门到大师】

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。,因此Java语言具有功能强大和简单...

    Java8的官方文档

    这是基于Java8的官方文档,使用Easy ...Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

    Java编程思想(完整版)

    2.3 绝对不要清除对象:在大多数程序设计语言中,变量的“存在时间”(Lifetime)一直是程序员需要着重考虑的问题。变量应持续多长的时间?如果想清除它,那么何时进行?在变量存在时间上纠缠不清会造成大量的程序...

    Java技术参考手册_java_

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。本文档讲解Java 12基础语法、虚拟机和...

    Java学习必要的软件包

    Java是一门面向对象编程...Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。

    Java优化编程(第2版)

    Java优化编程(第2版)通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析...

    Java 1.6 API 中文 New

    java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了...

    Java技术参考手册.docx

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。本文档讲解Java 12基础语法、虚拟机和...

    Java概念题汇总+目录表

    Java是一门 面向对象编程...Java具有简单性、面向对象、 分布式、 健壮性、 安全性、平台独立与可移植性、 多线程、动态性等特点 。Java可以编写 桌面应用程序、 Web应用程序、 分布式系统和 嵌入式系统应用程序等 。

    狂神java基础源代码.zip

    javaSE源代码,学习笔记,查漏补缺。...Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等.

    Java自学编程全套干货教学

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。 Java是一个面向对象的语言。对...

Global site tag (gtag.js) - Google Analytics