难度
初级
学习时间
10分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
提示
本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。
1.多态与方法返回值
在子类中被重写方法可以返回父类方法的返回类型的子类类型。
这句话可能有点绕,首先在子类中,例如Student类:
其次是“被重写的方法”:
接下来,是“可以返回父类方法的返回类型子类类型”,父类方法的返回类型是什么呢?来看People类:
父类方法的返回类型是Animal,于是“可以返回父类方法的返回类型子类类型”就可以认为是“可以返回Animal子类类型”,Animal下面有Cat和Dog两个子类,任选其一作为返回类型即可:
好了,整体的定义解释完了,接下来我们该来演示如何操作。
演示:
请编写一个父类Animal,内容可以是空的,然后再编写两个子类,分别为Cat和Dog。
请编写一个父类People,定义一个实例方法,返回值类型是Animal;再编写一个子类Student,重写其实例方法,返回值类型改为Animal任意子类即可。
请观察程序运行过程中是否存在错误。
代码:
Animal类:
Cat类:
Dog类:
People类:
Student类:
Main类:
结果:
从运行结果来看,我们发现程序并无异常,说明子类重写父类方法是可以返回父类方法返回类型的子类类型的。
总结
- 在子类中被重写方法可以返回父类方法的返回类型的子类类型。
至此,Java中多态中方法返回类型是子类类型相关内容讲解先告一段落,更多内容请持续关注。
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第五十九章:抽象类与抽象方法详解
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号Gorhaf,私信“Java学习小组”。
- 方式二:关注公众号Gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!