`
jiazt1009
  • 浏览: 23150 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

理解JAVA多态

阅读更多
数据抽象、继承和多态是面向对象程序设计语言的三大特性。多态的作用就是用来将接口和实现分离开,改善代码的组织结构,增强代码的可读性。在某些很简单的情况下,或许不使用多态也能开发出满足我们需要的程序,但大多数情况,如果没有多态,就会觉得代码极其难以维护。
/**
* 定义一个基类
*/

public Class Parents {
  public void print()
    System.out.println(“parents”);
  }
}

/**
* 定义两个派生类
*/

public Class Father extends Parents {
  public void print() {
    System.out.println(“father”);
  }
}

public Class Mother extends Parents {
  public void print() {
    System.out.println(“mother”);
  }
}

/**
* 测试输出结果的类
*/

public Class Test {
  public void find(Parents p) {
    p.print();
  }

  public static void main(String[] args) {
    Test t = new Test();
    Father f = new Father();
    Mother m = new Mother();
    t.find(f);
    t.find(m);
  }
}

最后的输出结果分别是father和mother,将派生类的引用传给基类的引用,然后调用重写方法,基类的引用之所以能够找到应该调用那个派生类的方法,就是因为程序在运行时进行了绑定。

学过Java基础的人都能很容易理解上面的代码和多态的原理,但是仍有一些关键的地方需要注意的,算是自己对多态的一个小结:

1.Java中除了static和final方法外,其他所有的方法都是运行时绑定的。在我另外一篇文章中说到private方法都被隐式指定为final的,因此final的方法不会在运行时绑定。当在派生类中重写基类中static、final、或private方法时,实质上是创建了一个新的方法。

2.在派生类中,对于基类中的private方法,最好采用不同的名字。

3.包含抽象方法的类叫做抽象类。注意定义里面包含这样的意思,只要类中包含一个抽象方法,该类就是抽象类。抽象类在派生中就是作为基类的角色,为不同的子类提供通用的接口。

4.对象清理的顺序和创建的顺序相反,当然前提是自己想手动清理对象,因为大家都知道Java垃圾回收器。

5.在基类的构造方法中小心调用基类中被重写的方法,这里涉及到对象初始化顺序。

6.构造方法是被隐式声明为static方法。

7.用继承表达行为间的差异,用字段表达状态上的变化。
分享到:
评论

相关推荐

    理解java多态

    深入理解java多态中的变化提高代码的可维护性和可扩展性

    java 多态 经典讲解

    #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态主要通过两种方式体现:*...

    深入理解Java多态.pptx.pptx

    Java多态是面向对象编程的核心特性之一,它允许我们使用一个通用的接口来处理不同类型的对象,从而实现代码的灵活性和可扩展性。在Java中,多态主要通过三种方式实现:继承、接口和方法的重写。 1. **继承与多态**...

    java多态机制

    为了更好地理解Java多态的应用,下面通过一个简单的示例来说明。 **示例**:假设有一个`Animal`类作为基类,它有一个`makeSound()`方法。我们可以创建两个子类`Dog`和`Cat`,分别重写`makeSound()`方法。 ```java ...

    java多态的理解共3页.pdf.zip

    首先,要理解Java多态的基础,我们需要了解类的继承和接口。在Java中,一个类可以继承另一个类,形成一种"is-a"的关系,比如`Dog is a Animal`。这种关系使得子类能够拥有父类的所有非私有属性和方法。同时,Java还...

    【Java面试题】谈谈对Java多态的理解

    【Java面试题】谈谈对Java多态的理解

    java多态理解

    Java多态理解 java中的多态性是面向对象编程的精髓所在。多态性是指父类引用指向子类对象,例如父类Animal,子类Cat和Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = ...

    java多态的总结

    Java的多态性是面向对象编程的一个核心特性,它允许我们使用一个接口来表示不同的类,使得代码更加灵活,易于维护。多态性是通过继承、接口和方法重写来...理解并熟练运用多态,能帮助开发者编写出更高质量的Java程序。

    Java 多态中的类型转换

    本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...

    C++和Java多态的区别

    ### C++和Java多态的区别 #### 一、概述 多态是面向对象编程语言中的一个核心特性,它允许程序员能够使用基类的指针或引用指向派生类的对象,并在运行时根据对象的实际类型来选择合适的方法进行调用。这一特性增强...

    对java中多态理解

    对 Java 中多态理解 Java 中的多态是指在不同的情况下可以有不同的行为,多态是面向对象编程的一种基本特征。多态的实现是通过方法重载和方法重写来实现的。 在 Java 中,多态可以分为两种:编译时多态和运行时...

    从虚拟机角度看Java多态->(重写override)的实现原理

    首先,理解Java的类加载机制对于解析多态性至关重要。当Java程序运行时,JVM会负责加载类文件。这个过程分为加载、验证、准备、解析和初始化五个阶段。在解析阶段,JVM会将符号引用转换为直接引用,这涉及到方法调用...

    Java 多态应用,掌握多态

    通过学习和实践上述知识点,开发者可以更好地理解和运用Java中的多态特性,编写出更加高效、可维护的代码。对于给定的压缩包文件"com多态",可能包含了相关的示例代码或者练习,这些可以帮助你更直观地理解并掌握...

    java多态实验

    在这个“java多态实验”中,我们可以看到一系列小代码实例,这些实例旨在帮助理解和应用多态特性。下面我们将深入探讨多态的概念、实现方式以及它在实际开发中的应用。 1. 多态性定义: 多态(Polymorphism)源自...

    java 多态的含义和例子经典讲解

    多态在Java中有着深远的影响,它提高了代码的可重用性、灵活性和可扩展性。本篇将通过一个经典例子深入解析多态的含义,并通过实际代码展示其应用。 首先,我们要理解多态的定义。在Java中,多态性(Polymorphism)...

    java 多态的泛型实现

    在Java中,多态主要体现在两个方面:方法重载(Overloading)和方法重写(Overriding)。方法重载是指在一个类中可以有多个同名方法,但参数列表不同;方法重写则是在子类中重新定义父类已有的非私有方法,以提供...

    Java多态,面向对象编程题demo.zip

    Java多态是面向对象编程中的一个核心概念,它允许我们以一种统一的方式处理不同类型的对象。在Java中,多态性主要体现在方法的重写(Override)和重载(Overload)。通过多态,我们可以编写出更加灵活、可扩展的代码...

    java多态的讲解

    用代码实例和注释向你讲述什么是多态,实例更容易理解

    java中多态的内存分析

    Java中的多态性是面向对象编程的一个核心特性,它允许我们使用父类引用指向子类对象,从而...理解多态和内存分配对于深入理解Java程序的运行机制至关重要。在实际编程中,应充分利用多态来设计高效且易于维护的系统。

    java多态小结

    ### Java多态详解 #### 什么是多态? 多态(Polymorphism)是面向对象编程的一个核心特性,指的是一个接口可以被多个类所实现或一个类可以被多个类所继承,进而表现出不同的行为。在Java中,多态主要体现在两个...

Global site tag (gtag.js) - Google Analytics