多态

多态

多态的基本介绍

方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承基础之上的

多态的具体体现

  1. 方法的多态:重写和重载就体现了多态
  2. 对象的多态(核心)
  3. 重要的几句话:
  • 一个对象的编译类型和运行类型可以不一样
  • 编译类型在定义对象的时候就固定了,不能改变
  • 运行类型是可以改变的
  • 编译类型看定义时候“=”左边的,运行类型看“=”右边的
  1. 向上转型
  • 可以调用父类的所有成员(但是需要遵守访问的权限)
  • 但不能调用子类的特有的成员
  • 在编译过程中,能调用那些成员看编译类型
  • 运行时,能调用那些,看运行类型,查找方法与方法调用的规则一样
  1. 向下转型
  • 语法:子类类型 引用名=(子类类型)父类引用
  • 只能强转父类引用,不能强转对象
  • 向下转型后,可以调用子类的所有成员了
  • 要求父类引用必须指向当前目标类型的对象

多态的注意事项和细节

  1. 属性没有重写之所,属性的值看的是编译类型
  2. instanceOf比较操作符,用于判断对象的运行类型是否为xx类型或 xx类型的子类型
    3.调用属性看编译类型,调用方法看运行类型

java的动态绑定机制

  • 当调用对象方法的时候,该方法会和对象的内存地址/运行地址绑定
  • 当调用对象属性时,没有动态绑定机制,那里声明哪里用

多态的应用

  1. 多态数组

数组的定义类型为父类,里面保存的实际元素类型为子类

posted @     阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示