關於向下轉型和向上轉型在内存的堆和棧中的體現

關於向下轉型和向上轉型在内存的堆和棧中的體現

老師好,例如有Animal one = new Cat();

回想以前關於new關鍵字的知識后。我有以下的疑問

1. 在棧中開闢内存空間用於存放地址,這個地址是new關鍵字后再堆中開闢的内存的地址。那麽爲了區分不同的類,棧中的空間除了存放地址是不是還有別的信息呢?堆中的内存空間是不是也根據類的不同有劃分區域呢?比如説有三個内存空間在堆中是屬於Cat類的。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

栈中的引用变量是保存了类的信息,但是堆中没有为Cat划分什么区域,像你说的划分三个,那要是需要创建第四个Cat对象怎么办

  • Zobeltitz 提问者 #1
    嗯,好的,謝謝你啦,不過我還有一點問題。就是指堆中不同類的對象之間沒有區分,但是在棧中的引用變量保存了它是哪個類的對象。那關於父子類的繼承關係和向下向上轉型這類的關係的信息是保存在哪裏呢
    2020-04-28 02:44:06
  • 好帮手慕阿慧 回复 提问者 Zobeltitz #2
    同学你好, 1、根据栈中引用变量保存的地址,可以找到堆中的对象,堆中保存了对象的信息。 2、继承关系和向下向上转型的关系保存在堆中。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-04-28 10:52:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师