多态的概述、使用及意义

多态的概述、使用及意义

多态的概念

• 多态主要指同一种事物表现出来的多种形态。
• 饮料:可乐、雪碧、红牛、脉动、…
• 宠物:猫、狗、鸟、小强、鱼、…
• 人:学生、教师、工人、保安、…
• 图形:矩形、圆形、梯形、三角形、…

多态的语法格式

• 父类类型 引用变量名 = new 子类类型();
• 如:
Shape sr = new Rect();
sr.show();

多态的特点

• 当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调
用父类独有的方法。
• 当父类类型的引用指向子类类型的对象时,父类类型的引用不可以直接
调用子类独有的方法。
• 对于父子类都有的非静态方法来说,编译阶段调用父类版本,运行阶段
调用子类重写的版本(动态绑定)。
• 对于父子类都有的静态方法来说,编译和运行阶段都调用父类版本。

引用数据类型之间的转换

• 引用数据类型之间的转换方式有两种:自动类型转换 和 强制类型转换。
• 自动类型转换主要指小类型向大类型的转换,也就是子类转为父类,也
叫做向上转型。
• 强制类型转换主要指大类型向小类型的转换,也就是父类转为子类,也
叫做向下转型或显式类型转换。
• 引用数据类型之间的转换必须发生在父子类之间,否则编译报错。
• 若强转的目标类型并不是该引用真正指向的数据类型时则编译通过,运
行阶段发生类型转换异常。
• 为了避免上述错误的发生,应该在强转之前进行判断,格式如下:
if(引用变量 instanceof 数据类型)
判断引用变量指向的对象是否为后面的数据类型

多态的实际意义

• 多态的实际意义在于屏蔽不同子类的差异性实现通用的编程带来不同的
效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值