理解Java中的多态和instanceof

本文探讨了Java中的多态概念,包括多态的前提条件和成员访问特点。详细阐述了引用变量的强制类型转换规则,并重点讲解了instanceof运算符的使用,以及如何通过它来判断对象是否可以安全地转换成指定类型,以确保代码的健壮性。
摘要由CSDN通过智能技术生成

多态

  • 事物 存在的多种形态

多态的前提

  • 继承关系
  • 有方法重写
  • 有父类引用指向子类对象

多态成员访问特点

  • 成员变量

    • 编译看左边(父类),运行看左边(父类)。
  • 成员方法

    • 编译看左边(父类),运行看右边(子类)。动态绑定
  • 静态方法

    • 编译看左边(父类),运行看左边(父类)。
    • 静态和类相关,算不上重写,只是子类运行时覆盖了父类的静态方法,所以访问还是看父类。
    • 只有非静态成员方法,编译看左边,运行看右边
  • 父类引用指向子类对象,就是向上转型

    • Animal a = new Dog();
  • 指向子类对象的父类引用强转成子类类型,使用子类中特有的方法向下转型。把一个父类对象赋给子类引用变量时,就需要进行强制类型转换。

    Animal  a = new Dog();
    Dog dog = (Dog)a;

引用变量的强制类型转换

  • 引用变量只能调用编译时类型的方法,而不能调用运行时类型的方法,即使他实际所引用的对

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值