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

Dog obj = new Dog;和Animal obj = new Dog;有什么区别吗?

正在回答

4 回答

前者是Dog类的对象赋予Dog类的引用变量obj,后者是Dog类的对象赋予Animal类的引用变量obj。前者的对象只能调用Dog类的属性和方法,后者的对象能调用Animal类和Dog类的属性和方法。

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

imooc_com

我认为,后者只能调用Animal中有的,或者Animal和Dog共有的. 不能调用Dog独有的...
2014-09-21 回复 有任何疑惑可以回复我~

后者是父类引用指向自己的子类

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

叽叽喳喳叮叮咚咚

复制黏贴这等于没说嘛╮(╯_╰)╭,问这个问题就是不能理解什么叫:“引用指向”这种模糊的概念
2014-10-25 回复 有任何疑惑可以回复我~

我觉得是前者,可以调用继承的方法和自己特有的方法。后者,调用Animal的方法,若子类Dog重写了父类Animal方法,则调用重写的方法。

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

前者,只可以调用父类自己的属性和方法

后者,可以调用父类的非私有的属性和方法、子类特有的属性和方法、子类重写父类的相关方法


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

天涯客_0002

我觉得是前者,可以调用继承的方法和自己特有的方法。后者,调用Animal的方法,若子类Dog重写了父类Animal方法,则调用重写的方法。讨论下。
2014-09-04 回复 有任何疑惑可以回复我~
#2

No7NEver

子类特有的方法是不能调用的吧?
2014-09-11 回复 有任何疑惑可以回复我~
#3

No7NEver

偌颜宁同学- -直接复制粘贴别人的回答了,但两个问题问法正好颠倒,前后者关系得对换一下
2014-09-11 回复 有任何疑惑可以回复我~
#4

AlanCooper

直接写代码测试,按照上述你说的定义两个对象,让后通过“对象.属性名”或“对象.方法名”来调用,你就能知道他俩的区别了。
2014-10-11 回复 有任何疑惑可以回复我~
#5

叽叽喳喳叮叮咚咚 回复 No7NEver

怪不得我看的稀里糊涂,诺言宁真是误导我了 = =
2014-10-25 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信