码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA多态

时间:2018-06-03 16:23:38      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:技术   重写   创建   类方法   没有   一个   使用   自动   .com   

一、多态--对象的多种形态
1、引用多态
父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
注:继承是多态的实现基础
2、方法多态
创建本类对象时,调用的方法为本类的方法
创建子类对象时,调用的方法为子类重写的方法或子类继承的方法

 

例:创建一个父类fruit,创建子类apple

父类fruit,构造eat方法

技术分享图片

子类apple ,继承父类fruit

技术分享图片

 

测试主函数:
       技术分享图片

 若父类指向的子类没有重写父类方法,则调用方法是调用的是父类的方法

技术分享图片

技术分享图片

 

二、多态中引用类型的转换
1、向上类型转换(隐式或自动类型转换):小类型向大类型转换(无风险,例把小杯子里的水倒进大壶里)
2、向下类型转换(强制类型转换):大类型向小类型转换(有风险,会出现数据的溢出)


如何避免风险?---使用instanceof运算符,用来解决引用对象类型,避免类型转换的风险性问题。

例:将父类fruit转换成apple类和Pear类

技术分享图片

如图中,已经先将父类fruit引用指向子类apple:apple app1=(apple)fru;所以再将父类fruit转换成子类pear时是不行的,但是编译器不会认出这个错误:Pear pear=(Pear)fru;(对应行号旁边没有红色小叉叉。)但是run时出现错误,表示不能将apple类转换成Pear类。

技术分享图片

JAVA多态

标签:技术   重写   创建   类方法   没有   一个   使用   自动   .com   

原文地址:https://www.cnblogs.com/WFM1997/p/9128564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!