• 多态性


    面向对象特征之三:多态性

    1.理解多态性: 可以理解为一个事物的多种形态。
    2.何为多态性:
    对象的多态性:父类的引用指向子类的对象
    3. 多态的使用:虚拟方法调用
    有了对象的多态性以后,在编译期,只能调用父类中声明的方法,但在运行期,实际执行的是子类重写父类的方法。
    总结:编译看左边,运行看右边
    4. 多态性的使用前提: ①类的继承关系 ②方法的重写
    5. 对象的多态性只适用于方法,不适用于属性


    有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法,但是由于变量声明为父类类型,导致编译时,只能调用父类中声名的属性和方法。子类特有的属性和方法不能调用。
    如何才能调用子类特有的属性和方法?
    向下转型:使用强制类型转换
    Person p = new Man();
    Man m = (Man) p;
    使用强转时,可能会出现ClassCastException的异常。


    instanceof关键字的使用
    a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false

    使用情境:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,进行向下转型,否则不进行向下转型。

    如果a instanceof A 返回true,则 a instanceof B也返回true
    其中B是类A的父类

  • 相关阅读:
    Nginx 配置实例-动静分离
    nginx-轮询、权重、ip_hash 、fair模式
    nginx-负载均衡
    nginx 常用的命令和配置文件
    Nginx 的简介
    阿里云--安装nginx AND访问超时
    阿里云-docker安装redis AND(docker基本操作命令)
    阿里云-docker安装mysql
    阅读金字塔原理笔记1
    Springboot-整合redis
  • 原文地址:https://www.cnblogs.com/risingsun-ymt/p/16133142.html
Copyright © 2020-2023  润新知