“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

170 阅读2分钟
原文链接: www.toutiao.com

难度

初级

学习时间

10分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.多态与方法返回值

在子类中被重写方法可以返回父类方法的返回类型的子类类型。

这句话可能有点绕,首先在子类中,例如Student类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

其次是“被重写的方法”:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

接下来,是“可以返回父类方法的返回类型子类类型”,父类方法的返回类型是什么呢?来看People类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

父类方法的返回类型是Animal,于是“可以返回父类方法的返回类型子类类型”就可以认为是“可以返回Animal子类类型”,Animal下面有Cat和Dog两个子类,任选其一作为返回类型即可:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

好了,整体的定义解释完了,接下来我们该来演示如何操作。

演示:

请编写一个父类Animal,内容可以是空的,然后再编写两个子类,分别为Cat和Dog。

请编写一个父类People,定义一个实例方法,返回值类型是Animal;再编写一个子类Student,重写其实例方法,返回值类型改为Animal任意子类即可。

请观察程序运行过程中是否存在错误。

代码:

Animal类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

Cat类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

Dog类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

People类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

Student类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

Main类:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

结果:

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

从运行结果来看,我们发现程序并无异常,说明子类重写父类方法是可以返回父类方法返回类型的子类类型的。

总结

  • 在子类中被重写方法可以返回父类方法的返回类型的子类类型。

至此,Java中多态中方法返回类型是子类类型相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

“全栈2019”Java第五十七章:多态与构造方法详解

下一章

“全栈2019”Java第五十九章:抽象类与抽象方法详解

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

“全栈2019”Java第五十八章:多态中方法返回类型可以是子类类型

版权声明

原创不易,未经允许不得转载!