zhangxinxin 发表于 2011-10-12 23:40
再问一句,产生的对象,可以说成是Man的对象,也可以说成是Person的对象,这句话,对吗 ...
嗯。。标题是一个问题,内容是另一个问题。
说白了,对象就是实例化后的类,一个类可以实例化很多很多的对象并操作属于他们自己的属性与方法。
见到NEW关键字,你就知道了,它是去堆中创建了一个MAN,而又把MAN的地址指向了他的父类p1,此时p1存在的位置应当是在栈中
这样的创建形式名为上转型,你创建了一个子类实例,却把它指向给了父类,如果非说产生的对象是谁的话,那该对象应该依旧是MAN,因为在堆中MAN对象可以调用自己的属性与方法,只不过你的引用是父类PERSON,导致了MAN对象缩水了,丧失了一些自己的方法,而只能转而调用父类的方法了。 |