面向对象特征之三:多态性

对象的多态性:对象的引用指向父类的对象
Java引用变量有两个类型:编译时类型和运行时类型。
编译时类型由声明该变量时使用的类型决定,
运行时类型由实际赋给该变量的对象决定(编译时,看左边;运行时,看右边
若编译时出现类型不一致,就出现了对象的多态性。
多态情况下,
“看左边”:看的是父类的引用(父类中不具备子类特有的方法)
“看右边”:看的是子类的对象(实际运行的是子类重写父类的方法)
2.一个引用类型的变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能在访问子类中添加的属性和方法
3.方法声明的形参类型为父类类型,可以使用子类的对象作为实参调用该方法。
4.虚拟方法调用(多态情况下)
子类中定义了与父类同名同参数的方法,在多态情况下将此时的父类方法称为虚拟方法。
Person e = new Person();
e,getInfo();
编译时e为Person类型,而方法的调用是在运行时决定的
所以调用的是Student类的getInfor()-动态绑定

  1. 对于重载的方法,他们的调用地址在编译期就绑定了 ,则成为静态绑定

多态作用:提高了代码的通用性。
前提:需要存在继承或者实现关系;有方法的重写

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值