首页 > 试题广场 >

怎么理解多态,他有什么好处

[问答题]
请问怎么理解多态,他有什么好处?
好处: 1-简化程序员的开发任务,通过在派生类中对虚函数的重写以实现新的功能,便于模块修改扩充 2-子类通继承父类的功能和代码,只需对部分代码进行重写,减少了代码冗余 3-增加了软件设计的灵活性 4-各个类层次的功能使用同一个名字,便于用户理解
发表于 2019-03-19 11:43:57 回复(0)
一个接口,多种实现,同时在最初的程序设定时,有可能会根据程序需求的不同,而不确定哪个函数实现,通过多态不需要修改源代码,就可以实现一个接口多种解决方案
编辑于 2019-01-17 02:20:01 回复(0)
多态性:是将父类对象设置成为和一个或更多它的子对象相等的技术。用子类对象给父类对象赋值之后,父类对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
  • 编译时多态:主要指泛型编程
  • 运行时多态:一句话概括:在基类的函数前加上 virtual 关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。
1) 用 virtual 关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数;
2) 存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的;
3) 多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性;
4) 多态用虚函数来实现,结合动态绑定.;
5) 纯虚函数是虚函数再加上 = 0;
6) 抽象类是指包括至少一个纯虚函数的类;
纯虚函数:virtual void fun()=0;即抽象类,必须在子类实现这个函数,即先有名称,没有内容,在派生类实现内容。
优点:
  • 封装可以隐藏实现细节,使得代码模块化;
  • 继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。
  • 而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性。耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量。
编辑于 2020-08-27 12:17:04 回复(0)
所谓多态,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行时确定,即一个引用变量到底会指向哪个类的实例对象,调用哪个类的实现方法,由程序运行期间才确定,这样不用修改程序源代码就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
发表于 2019-05-04 12:37:29 回复(0)
634头像 634
字面意思是多种形态,而在面对对象的语言中接口的多种不同的实现方式即为多态。好处:增加程序的可扩展性
发表于 2019-02-18 16:07:45 回复(1)
你设计了一个,swim函数,形参类型是鱼,你不关心传进来的是什么鱼,体型多大,你只需要知道他可以游泳,那么这就是多态,不然每次有新的鱼品种来,都要写一个特定形参类型的swim函数,整体代码会很繁琐臃肿,后期维护修改也麻烦
发表于 2019-01-23 00:10:58 回复(0)
实现代码的重用
发表于 2018-12-29 09:08:24 回复(0)