什么是多态?如何理解向上转型和向下转型

多态一般分为两种。
重写式多态和重载式多态。

重载式多态

重载式多态,也叫编译时多态。也就是这种多态在编译时已经确定好了。方法名相同而参数列表不同的一组方法就是重载。在调用这种重载的方法时,通过传人不同的参数最后得到不同的结果。

重写式多态

重写式多态,也叫运行时多态,这种多态通过动态绑定技术来实习,是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。只有程序运行起来,才知道调用的是哪个子类的方法。

多态的条件

继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够调用父类的方法和子类的方法。
继承也可为实现接口。

向上转型

子类引用的对象转换为父类对象称为向上转型。
通俗地说就是将子类对象转为父类对象,此处父类对象可以是接口。

向上转型过程中需要注意的问题

1.向上转型时,子类单独定义的方法会丢失。
2.子类引用不能指向父类对象

向上转型的好处

1.减少重复代码,使代码变得简介
2.提高系统扩展性、

向下转型

向下转型是把父类对象转为子类对象。

向下转型的注意事项

1.向下转型的前提是父类对象指向的是子类对象(需要先向上转型)
2.向下转型只能转型为本类对象。

总结:
1.多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力。
2.多态的分类:运行时多态和编译时多态。
3.运行时多态的前提:继承(实现),重写,向上转型
4.向上转型与向下转型
5.继承链中对象方法的调用的优先级:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值