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

关于引用类型的定义

说道堕胎,不得不提下引用,我有疑问,比如Animal obj1 = new Dog();

obj1是一个Animal类的引用,指向的是Dog类的对象,这么理解没错吧?

那么 obj1 这个引用是Animal类型 有什么意义? 它有也会有Animal类的属性 和方法吗?

求大神解释

正在回答

3 回答

Animal obj1=new Dog();   obj1好像只能引用dog的方法,如果父类子类同时有一个同名属性a,则obJ1.a调用的是父类的属性。Dog obj1=new Dog();像这样直接实例化子类,子类对象才可以同时拥有子类和父类的方法和属性

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

举个简单的例子:动物是一个父类,他具有动物的一般属性:年龄,可以吃东西等等,他对所有的动物都是符合的,因此为了程序的高效利用,就用继承的方法,比如狗继承动物的属性和构造方法。但狗这种动物他本身拥有看家这个特殊的本领,因此需要重写构造方法。Animal obj1 = new Dog();中的obj1是对Animal的引用(因为引用的效率高(可自己百度原因)),既然是引用,那么他就具有Animal中的一切属性和方法。而父类引用子类的构造方法和属性的前提是两者的属性和构造方法都是一样的(内容可能不同)。

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

dog类继承了Animal类,也就是包含在其中,类似与嵌套。我也是初学,你觉得对吗!

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

wzl329 提问者

Dog类是继承Animal类的,也就是说Animal可以做的Dog也可以做到,而且Dog觉得Animal做的不太合适还可以改写。
2016-03-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530554    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

关于引用类型的定义

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