面向对象总结-设计思想

多态
1.多态的概念
1)编译时多态
   编译时动态重载,通过不同的参数类型区分相同函数名,编译完成后其实会分成两个不同的函数。
  
2)运行时多态
 只是一种对象(事物)在不同情况下的表现,对象的本质不会发生变化
 例:一辆跑车也可以被称为汽车,按照java的语法,跑车是汽车的子类,它拥有同汽车一样的特性(轮子、方向盘、发动机),但跑车不会因为被称为汽车而失去跑车的特性,假设子类B继承自类A,B对象可以向上转型成A对象,它的B类属性/方法只是暂时被封住了而已,其实质永远都是B对象,不会因为向上转型后本质就发生了变化。它可以再次从A对象向下转型成B对象的原因就是因为它本来就是一个B对象。
 
PS:说到底,不管如何转换,由于它的实质是一个对象B,只能使用B对象的部分或者全部属性(向上转型会封锁对象的特性,向下转型会增加对象特性)。

2.多态的优点
 多态是将做什么和怎么做分离出来,从另一个角度将接口和实现分离,可以有效的改善代码的组织结构、可读性和可扩展性。

3.多态的缺陷
  1)私有、静态方法以及域都不具有多态性;
  2)构造方法不具有多态性,它是隐性的static方法(构造器的调用顺序是,先基类->导出类);
  3)在构造器内部调用正在进行动态绑定的方法会导致不可预期的后果;
  4)不能解决高度执行代码的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值