为了账号安全,请及时绑定邮箱和手机立即绑定

不太理解Animal obj2=new Dog()?

父类引用指向子类对象,这个obj2到底是父类的对象还是子类的对象呀?使用子类的构造方法创建对象为什么不可以引用子类独有的方法呢?

正在回答

3 回答

父类的哦,我大概懂你的意思,用子类引用也是可以的,一般来说有继承关系的话,使用父类引用子类对象会更好的展示多态性

0 回复 有任何疑惑可以回复我~
#1

白枫999

请问这样做有什么用呢,既然继承了父类那直接引用子类创建子类对象也可以使用父类的方法,重写方法之后用的也是子类的方法,那为什么还要引用父类创建指向子类呢?
2020-03-25 回复 有任何疑惑可以回复我~

这个是obj2是引用父类给子类创建的对象。打个比方,儿子继承父的财产和儿子打拼的财产是不同的,在法院判决的时候是不会把儿子打拼的财产跟继承的财产一起收税的。如果你创建一个子类独有的对象就可以调用这个独有的方法。

0 回复 有任何疑惑可以回复我~

如果你在很多地方使用了这个子类对象,比如狗这个对象,但是后来你想把狗的对象换成猫的对象,如果直接使用子类引用的话,所有的狗对象的引用都需要改变,工作量巨大,如果使用的是父类的引用,你只需要修改父类的引用对象就行,而不用替换其他地方。

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

不太理解Animal obj2=new Dog()?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信