• 什么是多态?


    多态的定义
    》生活中的多态,同一件事由于条件的不同,导致的结果不同
    》程序中的多态,同一个引用类型,调用同一个方法,但因为真正创建的实例(对象)不同,导致执行结果不一样

    父类引用,
    子类对象

    调用同一个方法,但因为真正创建的实例(对象)不同,导致执行结果不一样


    》实现多态的关键
    继承父类
    重写抽象方法
    声明父类对象,创建子类对象(父类引用指向子类对象。)

    实现多态的两个要素:
    1. 方法重写
    2. 使用父类类型

    多态性的使用前提

    ① 类的继承或者实现关系 ② 方法的重写 ③向上转型

    Java实现多态有三个必要条件:继承,重写,向上转型。

    继承:在多态中必须存在有继承关系的子类和父类。

    重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

    向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

    只有满足了上述三个条件,我们才能够在同一个继承结构中使用同一的逻辑实现代码处理不同的对象,从而达到执行不同的行为。

    虚拟方法调用(多态情况下)

    子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的。

    Person e = new Student();

    e.getInfo();//调用Student类的getInfo()方法

    编译时类型和运行时类型

    编译时e为Person类型,而方法的调用是在运行时确定的,所以调用的是Student类的getInfo()方法。 ——动态绑定



     
  • 相关阅读:
    安装Bind到CentOS(YUM)
    安装Ansible到CentOS(YUM)
    安装AB到CentOS(YUM)
    安装APACHE到CentOS(YUM)
    07 Spring Cloud Eureka是什么?
    06 Spring Boot Starter的介绍及使用
    05 Spring Boot项目搭建步骤(超详细)
    04 Spring Cloud开发环境的准备和Lombok安装步骤
    03 Spring Cloud和Dubbo的区别及各自的优缺点
    02 Spring Cloud 模块介绍
  • 原文地址:https://www.cnblogs.com/longmo666/p/13558132.html
Copyright © 2020-2023  润新知