`

Java的多态性总结

阅读更多
1. Java的多态性总结:

(1) 首先, 要明确Child对Parent发生了方法的overload还是overwrite,根据参数类型及个数。

(2) 如果是overload,则Child继承了Parent的方法,相当于Child多加了父类的方法。

(3) 如果是overwrite, 则Child类不会有父类的该方法,而是把该方法重写了,所以该方法存在于父类中,子类只是重写了。要想调用父类的该方法,只能通过super关键字调用。
    java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。
(4) 接下来,观察方法执行时的参数类型;

(5) 然后看调用对象的声明类型和实例类型;

(6) 方法的调度采用最精确参数匹配。


2. 多态分两种:
(1) 编译时多态:编译时动态重载;
(2) 运行时多态:指一个对象可以具有多个类型,方法的覆盖
    这样对于对象而言分为:
    理解运行时多态:
    Car c = new Bus();
    Car编译时类型 编译时检查变量类型是否存在,是否有调用的方法。
    Bus运行时类型  实际运行是访问heap中的对象,调用实际的方法。
    运行时多态是由运行时类型决定的
    编译时多态是由编译时类型决定的


3
2
分享到:
评论
1 楼 hellolaojiang 2010-05-28  
昨天去面试,刚好问到了类似的问题.说多态有哪两种?说实在的,这种询问的方式当时把我搞蒙了,由于平时几乎都在使用运行时多态,所以倒把那个重载的编译时多态搞忘了.
看到这篇文章,再次加深了理解.很是感谢.

相关推荐

    java多态性练习

    总结一下,这个“java多态性练习”将带你深入理解Java中的多态性和抽象类。通过实际的代码示例和分析,你将学会如何在自己的项目中有效地应用这些概念,以实现更高效、更灵活的代码设计。这个练习对于任何希望提升...

    Java多态性实验报告

    ### Java多态性实验知识点解析 #### 实验背景与目的 本次实验主要目的是让学生通过实践操作,深入理解Java中的多态性概念,并掌握如何利用多态性实现代码的灵活性和可扩展性。实验中,学生将通过编写一个处理复数...

    Java多态性探悉()

    本文将深入探讨Java多态性的概念、实现机制以及相关的编程规则。 一、基本概念 多态性意味着一个接口可以有多种不同的表现形式。在Java中,可以通过子类对象引用赋值给超类对象引用变量来实现这一特性。这意味着,...

    Java基础知识:多态性

    Java 基础知识:多态性 Java 语言是一种面向对象的编程语言,多态性是其核心特性之一。多态性是指同一个方法在不同对象上具有不同的行为。通过多态性,我们可以编写出灵活、可扩展的代码,提高代码的可维护性和可...

    编程语言java多态性.pdf

    Java多态性涉及到的关键词包括:extends(继承)、implements(实现接口)、abstract(抽象类和方法)、virtual(虚函数,C++中的概念)、Override(覆盖)、Overloading(重载)、Encapsulation(封装)等。...

    多态性的理解

    在Java中,多态性主要通过方法重载(overloading)、方法重写(overriding)以及动态绑定来实现。 #### 二、面向对象编程三大特性 面向对象编程(OOP)通常包含以下三个基本特性: 1. **封装**:封装是隐藏对象的...

    Java运行时多态性的实现.rar

    本文件“Java运行时多态性的实现.txt”很可能是详细解释这一主题的文档,虽然具体内容无法在此直接提供,但我可以为你总结和扩展相关的Java多态性知识。 1. **类的继承**:在Java中,一个类可以继承另一个类,形成...

    使用Java多态性实现一个简单的动物园管理系统.txt

    ### 使用Java多态性实现一个简单的动物园管理系统的知识点解析 #### 一、抽象类与抽象方法 本系统中,`Animal`被定义为一个抽象类,这意味着它不能被实例化,仅能作为其他类的基础来扩展。抽象类的存在主要是为了...

    java 基础练习题

    这个例子展示了多态性,尽管`animal`变量是`Animal`类型,但实际引用的是`Dog`对象,因此调用的`sound()`方法是`Dog`类中的版本。 3. **练习题** 在学习Java基础时,通过解决相关的练习题,可以加深对类继承和...

    Java多态性定义与用法实例详解

    "Java多态性定义与用法实例详解" 本文主要介绍了Java多态性定义与用法,详细分析了多态的概念、功能以及Java定义与实现面向对象多态性的相关操作技巧。 一、基本概念 多态性是指发送消息给某个对象,让该对象自行...

    Java实验报告——类的继承、多态的应用

    总结来说,这个实验报告通过实际编程练习,帮助我们巩固了Java中抽象类和抽象方法的定义,以及类的继承和多态性这两个核心概念。通过设计和实现学生管理类,我们可以更深入地理解这些概念在实际问题解决中的应用。

    java多态的总结

    Java的多态性是面向对象编程的一个核心特性,它允许我们使用一个接口来表示不同的类,使得代码更加灵活,易于维护。多态性是通过继承、接口和方法重写来实现的,它让程序在运行时能够根据对象的实际类型执行相应的...

    Java语言程序设计(第二版)\第05章 类的继承性与多态性.ppt

    总结,类的继承性和多态性是Java面向对象编程的重要组成部分,它们帮助开发者创建更灵活、可维护的代码结构,提高了代码的复用性。通过继承,我们可以构建类的层次结构,而多态则使得在不关心具体类型的情况下,可以...

    JAVA多媒体开发手册 JMF API

    JMF由多个关键组件构成,它们共同协作以实现多媒体处理任务。 1. **数据源(Data Source)** - **定义**:`DataSource`对象代表了包含多媒体数据的源头,可以是本地文件或网络流。 - **作用**:为多媒体内容提供...

    JAVA核心知识点整理.pdf

    Java是一种广泛使用的面向对象编程语言,其核心特性之一就是多态性。多态性赋予了Java代码灵活性和可扩展性,使得程序可以处理多种不同类型的对象而无需知道具体类型。在Java中,多态性主要分为静态多态性和动态多态...

    JAVA基础知识精华总结

    Java通过方法重写(Override)和方法重载(Overload)实现多态性。 三、异常处理 Java提供了异常处理机制,通过try-catch-finally语句块捕获和处理运行时错误。异常是程序执行过程中发生的不正常情况,可以自定义...

    成员的初始化顺序和多态性

    本实验将通过编写具体的Java代码来演示多态性的特性,特别是私有方法、静态方法和实例方法的多态性差异。 #### 实验步骤解析 ##### 步骤三:多态性实验 1. **私有方法和静态方法不是多态的**:这是因为在继承关系...

Global site tag (gtag.js) - Google Analytics