当前位置: 首页 > news >正文

面向对象三大特性:多态

什么是多态?

对于多态是一个极其抽象的词,比如说动物有猫和狗,猫和狗的行为不同,这也叫多态,就是根据引用对象的不同,产生的行为也不同,这就叫多态。

多态的实现条件

1.必须是继承的子类

2.子类得要对父类的方法进行重写

3.通过父类的引用调用重写的方法

此时func1方法的参数类型是父类,通过将不同的子类传入从而产生出不同的行为,这就叫多态。

重写

1.重写是通过子类对父类非static,final,private修饰的方法根据子类的需要对父类进行重新编写,同时其参数列表,返回类型都不能改变,

2.子类重写的访问修饰符权限不能比父类还低,比如子类是default父类是pubilc。

3.子类与父类必须是父子关系

4.可以叫上override进行修饰,如果重写的方法名错误其会提示。

重写与重载比较

1.重写要求两个类得是父子关系

2.重写的参数列表一定不能修改,重载则必须修改

3.重写的返回值类型不能修改(除非构成父子关系),重载则可以修改

4.重写的访问限定符收到严格限制,重载可以修改

向上转型和向下转型

向上转型使用场景

1.直接赋值

2.参数返回

3.方法传参

优点:让代码实现更灵活

缺点:不能调用子类特有的方法

多态的优缺点

优点

1.降低代码的圈复杂度,降低使用if-else

2.扩展性强

比如说我想在原有的Animal类上加一个子类,只需要创造一个新的实例就行,改动成本很低。

缺点

代码运行效率低

1.属性没有多态性
2.构造方法没有多态性

相关文章:

  • QT-自定义参数设计框架软件
  • SQL(1)
  • 04 高效HarmonyOS NEXT编程:ArkTS数据结构优化与属性访问最佳实践
  • Three.js 入门(基础材质、贴图、纹理、环境、遮蔽光、透明度、高光贴图)
  • 日常开发记录-radio组件
  • SQL Server数据库中用存储过程来取顺序号
  • Mybatis实现批量添加
  • rust学习笔记11-集合349. 两个数组的交集
  • FreeRTOS系列---程序正常,但任务无法创建
  • Qt之QGraphicsView图像操作
  • C语言--快速排序和归并排序
  • 【回溯】216. 组合总和 III
  • 大模型Agent:人工智能的崭新形态与未来愿景
  • DICOM服务中的C-STORE、 C-FIND、C-MOVE、C-GET、Worklist
  • 一文讲清楚自我学习和深度学习
  • 通过微步API接口对单个IP进行查询
  • postman请求后端接受List集合对象
  • IDEA中Git版本回退终极指南:Reset与Revert双方案详解
  • GIt分支合并
  • PHP 包含(Include)机制详解
  • 铜陵app网站做招聘/网页设计参考网站
  • 如何建设国际网站首页/头条今日头条新闻
  • 我国政府网站建设的现状/网络营销是做什么的工作
  • 做房产中介需要有内部网站吗/yoast seo教程
  • 网站制作字怎么放在图上面/网站外部优化的4大重点
  • 网站建设企业官网体验版是什么/南宁seo平台标准