• java学习笔记(day18)


    0x00 多态

    1.概述

    面向对象三大特征:封装性、继承性、多态性。

    继承性是多态性的前提。

    extends继承或者implements实现,是多态性的前提。

    一个对象拥有多种形态,这就是:对象的多态性。

    2.多态的格式和使用

    代码当中体现多态性,其实就是一句话:父类引用指向子类对象。

    格式
    父类名称 对象名 = new 子类名称();
    或者:
    接口名称 对象名 = new 实现类名称();

    3.多态中成员变量的使用特点

    1. 直接通过对象名称访问成员变量:看等号左边是谁,有限用谁,没有则向上找。
    2. 间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找。

    4.多态中成员方法的使用特点

    在多态代码当中,成员方法的访问规则是:
    看New的是谁,就有限用谁,没有则向上找。

    注意:编译看左边,运行看右边。

    对比:
    成员变量:编译看左边,运行还看左边。
    成员方法:编译看左边,运行看右边。

    5.使用多态的好处

    无论右边new的时候换成了哪个子类对象,等号左边调用方法都不会变化。

    6.对象向上转型

    1. 对象向上转型,其实就是多态写法:
      格式:父类名称 对象名 = new 子类名称();
      含义:右侧创建一个子类对象,把它当做父类来看待使用。
      注意事项:向上转型一定是安全的。

    7.对象向下转型

    对象向上转型一定是安全的,没有问题的,正确的,但是也有一个弊端。
    对象一旦向上转型为父类,那么就无法调用子类原本特有的内容。

    解决方案:用对象的向下转型【还原】。
    2. 对象的向下转型,其实是一个【还原】的动作。
    格式:子类名称 对象名 = (子类名称)父类对象;
    含义:将父类对象,【还原】成本来的子类对象。

    注意事项:
    以动物举例子。

    1. 必须保证对象本来创建的时候,就是猫,才能向下转型成为猫。
    2. 如果对象创建的时候本来不是猫,现在想要向下转型变成猫,就会报错。
      简单来说,就是你在向上转型的时候是什么,向下转型才能变成什么,如果非要变成别的东西,就会报错。

    对象向下转型,类似于强制数据类型转换。

    8.使用instanceof关键字进行类型转换

    Q:如何才能知道一个父类引用的对象,本来是什么子类?
    A:使用instanceof关键字。
    格式:
    对象 instanceof 类型
    这将会得到一个布尔值结果,也就是判断前面的对象能不能当做后面类型的实例。

    文章未经本人允许,禁止转载。 有技术问题,可加好友讨论。 联系方式:QQ:MjgxMjMxODAzNQ== 微信:bzNycjByLVhpYW9taW5n
  • 相关阅读:
    物联网相关期刊会议
    Java O O第十一天
    mac下安装伪分布hadoop2.6.0和hbase1.0.1.1
    Ubuntu下使用openssl为apache2配置ssl
    ubuntu下安装hadoop
    ubuntu 添加应用到Dash启动器
    Ubuntu12.04中安装Oracle JDK和NetBeans的方法
    Ubuntu12.04中在桌面建立指向网页的链接文件的方法
    Ubuntu12.04中Gvim无法固定到启动器的解决办法
    Ubuntu中apt-get安装或更新软件错误的解决办法
  • 原文地址:https://www.cnblogs.com/Xiaoming0/p/13828867.html
Copyright © 2020-2023  润新知