android 多态按钮,java   多态的作用

一道面试题 : 多态的作用 ?  摘录 网友的 回答!

多态有编译时多态 和运行时多态。

第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。

第一种就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如: 加法运算,可以使int相加,可以是double相加,都是同一个方法名。

第二种就是动态绑定,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。 这样的作用就是扩展性极好,玩过网游的话应该知道 游戏中有不同的角色,它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,魔法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,各自有自己的现实,表现出来多态。  如果有一天你想再加个角色,只用再写一个类继承该父类,覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好

如果要回答的完整一些的话,我觉得应该先说一下什么是多态,然后说一下面向对象方法相对于过程化方法的优势,及多态在其中的作用。

多态简单的说就是单接口多实现。在面向过程分析方法中,整个系统是由数据流驱动的一个组织严密的体系,而面向对象分析方法则强调各对象是相对独立的,只有在特定场景中才会产生交互,多态特性维护了对象交互的稳定性。

嗯,浓缩成一句话的话,应该就是降低代码耦合度了。

高内聚和低耦合是相互矛盾的,如果一个类中的代码高度相关则此类完成的功能相对单一,即各个类间的依赖性肯定很大,所以耦合度也非常大。反之亦然。

高内聚,低耦合的系统具有更好的重用性,维护性,扩展性。

多态都不理解,不进华为是理所当然的。

多态讲的是事物之间共性的抽象,比如汽车A,汽车B,汽车C,你都定义一个类去描述它,显然,他们之间有汽车共同的定义是重复的,那么他们三个共同继承汽车类,那么显然,减少了代码的冗余,同时汽车类被A,B,C三个子类使用,那么代码的复用程度高了

又有,对于开车这个动作,我们不需要关心他是A,B还是C车,因为开法都是一样的,这样我们对于开车,只需要定义一个函数开车,它实际可以开A,B,C车,而不用为A,B,C车分别定制开车,同样减少了代码冗余,再者,若A,B,C车开车的动作发生了一些调整,比如我们原来是手动档,现在变成自动档,,若你 A,B,C车各有一个开车的函数,那么,你是不是每个函数都需要修改,而多态的开车函数,我只需要修改一个函数,那么可维护性是不是提高了?

另外由于使用多态一些共用的处理车的方法已经提供了,那么你新增加的D车还是可以使用的,你新增加的D车只要提供D车一些特殊的操作方法就OK了,这样代码的可扩展性就提供。

耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量,就像一个电脑主机,你主板,cpu,显卡,硬盘之间到处飞线连接,而不是使用我们标准的pci,sata硬盘接口等标准接口,那么你哪个部件坏了,要拆下来修理,是不是很麻烦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值