首页 > 其他分享 >为什么要使用多态?(多态的好处)

为什么要使用多态?(多态的好处)

时间:2024-08-06 10:16:35浏览次数:6  
标签:为什么 子类 派生类 多态 好处 多态性 可扩充性

为什么要使用多态?(多态的好处):

多态的好处:

  • 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
  • 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,

Java多态的好处:

  • 可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
  • 可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
  • 接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
  • 灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
  • 简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要
  • 消除类型之间的耦合关系

标签:为什么,子类,派生类,多态,好处,多态性,可扩充性
From: https://www.cnblogs.com/lnnnkq/p/18344633

相关文章

  • C++(虚函数实现多态基本原理)
    目录1.概念2.示例3.总结在C++中,加上virtual关键字可以实现多态,这是因为它允许函数在基类和派生类中有不同的实现,并确保在运行时正确调用派生类的方法。具体来说,这种机制称为“动态绑定”或“运行时多态”。1.概念虚函数(VirtualFunction):当你在基类中声明一个函数......
  • 为什么“pytest_addoption”钩子不使用配置的“testpaths”运行?
    摘要:我正在尝试使用pytest_addoption功能设置自定义pytest选项。但是当在使用所述自定义选项时尝试使用project.toml文件配置我的项目时,我得到出现以下错误:$pytest--foofooERROR:usage:pytest[options][file_or_dir][file_or_dir]......
  • 为什么 xgboost.QuantileDMatrix 使用自定义数据迭代器对数据进行四次传递?
    我正在尝试使用自定义数据迭代器,如下所示此处,因为我的数据集太大。只是为了测试它是如何工作的,我正在使用示例的子集并运行以下代码。X是我的数据的numpy数组。我的迭代器如下所示classIterForQDMatrix(xgb.core.DataIter):def__init__(self,d......
  • 继承和多态
    继承继承:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。生活中的继承:继承的概述:继承是面向对象程序设计的一个重要特征......
  • 多态的可扩展性动物行为实例 day09
    packagecom.shujia.day09;importjava.nio.channels.Pipe;/*多态的好处1、提高了程序的维护性(由继承保证)2、提高了程序的扩展性(由多态保证)*/classAnimal{Stringname;intage;publicAnimal(){}publicAnimal(S......
  • 多态的转型,向下转型day09
    多态访问成员方法的弊端:多态的形式下,无法调用子类中特有的方法。解决方案:向下转型。语句定义格式:子类的类型对象名=(子类的类型)父类的变量;向下转型的理解曹操和曹植的故事,曹操是曹植的父亲,曹植是曹操的儿子class曹操{publicvoi......
  • 多态的概念,前提,注意事项以及访问成员的特点 day09
    多态:某一个事物在不同状态下的多种状态举例:1、学生是人,老师是人,医生是人。2、汽态的水是水,固态的水是水,液态的水是水在java中要实现多态的话,需要有3个前提:1、必须要有继承关系2、要有方法的重写(思考可否不重写?)......
  • 为什么企业要微调大模型
    一、模型是什么?在人工智能领域,模型是指通过对数据进行分析和学习,建立的一种数学结构或算法,用于预测或分类新数据。简单来说,模型是从数据中提取知识,并应用这些知识对未来进行预测的工具。一个基本的线性模型可以表示为:Y=WX其中,Y是预测值,W是权重矩阵,X是输入数据。通过训......
  • 十万个为什么 [串口] Windows 串口读写
    #include<Windows.h>#include<stdint.h>#include<stdio.h>//---------------------------------------------------------------------------classserial_t{public: ~serial_t(){close();} boolis_open(){returnm_handle!=INVALID......
  • 十万个为什么 [Windows] 获取串口号
    #include<Windows.h>#include<SetupAPI.h>//-lsetupapi#include<devguid.h>//-luuid#include<stdio.h>#include<map>usingnamespacestd;map<string,string>get_serial_ports(){ map<string,string>por......