--- JAVA 多态 ---

多态,顾名思义就时有多种形态,那咋样才嫩共有多种形态呢,再java中就是用不同的对象去调用同一个方法,产生了不同的结果。

看这段代码,我调用的是同一个方法,且只是传入的对象的不同,但是产生了不同的结果,这就是多态

多态的执行条件

必须要子类继承了父类

 子类要对父类的方法进行重写,要发生向上转型

同过父类调用子类的方法

那什么是重写呢

再子类的父类中有相同的方法,且该方法的放回值,参数,名字相同,且子类的访问权限大于等于父类在调用父类的该方法时,子类的方法会重写父类的方法啊,所以当调用的父类的方法,实际执行的是子类的方法 只有将她的访问权限设置为public 返回类型,参数和她一样才可以成功运行

再发生向上转型后,调用父类的发重写的方法,最终产生不同的效果把这整个过程叫做动态绑定,再编译时不能确定方法的行为,只有再程序运行后才知道,也叫做晚绑定

当然也有静态绑定,这是在用户传参时就能确定调用的是哪个方法,典型就是方法重载

向下转型

在发生向上转型后,我们如果要调用子类的成员是不行的,只能调用父类有的成员

那如果要调用子类的方法,那么就要用到向下转型了

因为向下转型是从小变到大的转换,是有风险,在转换是需要判断能否进行

这里用到一个关键字,instanceof ,用来确认lei这个类否是后面hh的变量,若是表达式为true 否者为false,只有当lei这个类是后面hh的父类是,才能使用向下转型,将lei强转为hh,然后使用一个hh类型的变量tmp去接收,这样就可以同过tmp去调用子类的成员了

END 加油哦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值