问答详情
源自:10-1 Java 中的多态

关于引用类型的定义

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

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

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

求大神解释

提问者:wzl329 2016-03-26 22:15

个回答

  • 慕无忌7510152
    2016-04-30 14:31:51

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

  • 慕工程6948927
    2016-04-04 11:33:01

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

  • 紫檀幽居
    2016-03-26 22:40:59

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