返回值是父类。。

返回值是父类。。




父类;

父类:public Animal create(){
    return new Animal();
}

子类1:@Override
public Animal create(){
    return super.create();
}


子类2:@Override
public Dog create(){
    return new Dog();
}


老师,首先我不理解,为什么子类重写后的方法(子类1),也能返回父类对象?感觉超越子类骑到父类头上了。。。

其次,子类2,返回的是子类对象,这也算重写?

最后,返回一个类的对象,有什么作用?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,你的理解非常正确。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕珊 2019-05-04 15:03:27

你好!

1、第一个问题,这只是一个返回值而已,根据需求进行返回就可以,跟父类没有直接关系。

2、子类重写方法的返回值可以是父类方法返回值的子类

3、关于返回值的作用,要看具体的需求,这个例子中的creat()方法的作用是创建对象,所以返回一个对象。返回对象后,可以继续使用返回值调用该对象的相关方法。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 鱼儿0001 #1
    子类重写方法的返回值可以是父类方法返回值的子类。老师,子类重写方法的返回值也可以与父类的返回值一样,如这里都是Animal类类型,对吧?
    2019-05-05 16:46:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师